我试图在时间上优化我的构建过程(在开发中),以构建maven多模块项目的整个树。一些POM实际上是源/库的聚合,很少(而且通常)不会改变。所以具体的子问题是
谷歌找不到任何相关的Q#1。当我试图为maven-bundle-plugin指定“执行”时,典型的解决方案对#2不起作用(如下所示)
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>${maven-bundle-plugin.version}</version>
<extensions>true</extensions>
<executions>
<execution>
<id>osgi-bundle</id>
<phase>bundle</phase>
<goals>
<goal>bundle</goal>
</goals>我在输出中收到这个错误。
[bundle:bundle]
Bundle artifact-id:bundle-id:bundle:0.1.0-SNAPSHOT : The JAR is empty: dot
Error(s) found in bundle configuration任何帮助都是非常感谢的。我知道以下几点:
* 禁用父POM中定义的Maven插件 (maven-bundle-plugin不能使用“执行”标记)
* 如果不存在文件,跳过maven插件的执行 (maven-bundle-plugin没有跳过信任选项)
* 如何在多maven模块中跳过生命周期阶段 (与上一次相同)
*如果整个maven-bundle-plugin被移动到配置文件中,maven就不会识别packaging=bundle。
发布于 2012-09-07 22:41:58
最后,我不得不承认,(C) Eugene Kuleshov "Maven通常不跟踪源/更改,所以它始终是一个完整的构建。“
但是,回到5+ on .NET和5+ years在C++上变得更好之后,像增量构建这样一个常见的特性不被广泛使用的具有历史 of 10+年的工具所支持,这让我觉得很奇怪。因此,我无法花时间等待重建我的多模块项目中的每个未修改的模块,并决定定制Maven 3.0.4 :)
请随意在这里抓取它,http://code.google.com/p/maven-onchange-activator/,试着报告问题。
发布于 2012-06-04 18:05:23
Maven通常不跟踪源/更改,因此它始终是一个完整的构建。但是,要禁用任何插件,您可以将其移动到配置文件中,然后启用/禁用整个配置文件,例如有条件地或从命令行。
发布于 2012-06-05 12:45:21
你应该检查一下
mvn -am 与…有关系
mvn -pl ...所以做这样的构建:
mvn -am -pl SubModule clean package将生成只有那些已经改变的模块,并且由于对更改模块的依赖而需要构建该组件。
https://stackoverflow.com/questions/10885059
复制相似问题