1

假设我们有两个不同的 maven 项目;项目 A 和项目 B

项目B使用A并且需要动态(使用maven插件?)从项目A复制源文件“A.java”,修改其包声明并编译它(项目B应该具有与项目A相同的类但具有其他包声明..)

在修改包声明并编译所有之前,我试图将源文件从 A 复制到 B。

这是好方法吗?

因此,项目 A 将其 java 文件公开为资源

<build>
  <resources>
    <resource>
      <directory>src/</directory>
      <includes>
    <include>**/A.java</include>
      </includes>
    </resource>
  </resources>
</build>

但是如何将此文件复制到 B(B 是 A 中的依赖项)?“maven-resources-plugin”是否允许从依赖项项目中复制资源,如果是这样,我如何在“资源”中指定属性“目录”我尝试通过在 jar 依赖项中指定文件的位置但它确实不行

你有其他提议吗?

谢谢

4

2 回答 2

2

最后我通过以下步骤解决了它:

1 - 使用“maven-dependency-plugin”提取(解压缩)我想要的(来自 jar 的源文件)包含的工件。

2 - 使用“maven-antrun-plugin”执行ant命令,替换字符串,创建新包并移动修改过的源..见这里

3 - 使用“build-helper-maven-plugin”将编译器指向新的源包,以便将它们包含在编译阶段

PS:这三个步骤必须发生在“generate-sources”阶段!

于 2013-08-02T14:34:23.750 回答
0

maven-resources-plugin 使您能够在编译之前将 java 源代码复制到任何地方(您可以初始化阶段),但问题在于 java 文件中的包声明。你还需要修改它,这在 Maven 中并不简单

但是为什么你需要这样做呢?为什么你需要在两个不同的包中使用相同的代码???

于 2013-07-29T16:34:52.363 回答