Java 跳过未修改模块的maven构建?
我使用maven多模块构建,如下所示Java 跳过未修改模块的maven构建?,java,maven,build,Java,Maven,Build,我使用maven多模块构建,如下所示 <modules> <module>module1</module> <module>module2</module>// dependant on module 1 <module>module3</module>// dependant on module 2 <module>wa
<modules>
<module>module1</module>
<module>module2</module>// dependant on module 1
<module>module3</module>// dependant on module 2
<module>warApplication</module>// its a war file dependant on above modules
</modules>
下面是我在父pom中包含的模块
<modules>
<module>../../modules/module1</module>
<module>../../modules/module2</module>
</modules>
从构建目录->构建项目->pom.xml
运行构建。
但问题是,当我更改任何模块的任何文件并从
build directory->pom.xml
运行build时,它没有检测到模块更改?您可以使用配置文件来构建您知道已更改的内容,因为pom中不支持时间戳
有关更多详细信息,请参见此处:当然,最好的选择是使用增量模块生成器。第一次更改扩展文件后,您需要
mvn安装
,依此类推,您可以使用mvn-b增量包
,它只生成从以前版本更改的模块。github地址是实际上,这并不能解决我的目的,因为我希望最小化构建时间。根据修改了哪个模块,我只想构建那些特定的模块。从你粘贴的链接,我每次都要创建包含修改模块的maven配置文件。这意味着首先我需要弄清楚修改了哪个模块,然后包括那些本身容易出错且耗时的模块。我知道,但实际上,你没有太多选择。对不起,我不能帮你更多的忙。我知道,这不是一个答案,但是试试格拉德尔。至少它会跳过未被触碰的模块的重建。你应该考虑,即使你还没有接触到模块2,构建的结果可能是不同的。首先,模块2的构建可能会中断,因为您更改了模块1中由模块2调用的某个类。出于同样的原因,模块2的测试可能通过或中断,具体取决于模块1。此外,还有一些比较少见的问题,比如在模块2中使用模块1的公共常量。这些都被编译到模块2中,这样即使您只更改模块1中的一个常量,模块2的字节码也可以更改。@JFMeier您是对的。在这种情况下,我还需要构建模块2。但是lat说,我确信没有任何类似的更改会破坏模块2,有没有一种方法可以跳过模块2的构建您可以简单地使用:mvn-pl module1,warApplication
(手动)从根文件夹中(使用之前,您需要安装mvn)。不需要配置文件。或者,您也可以查看评论1中的@khmarbaise一个问题。我的pom.xml有4.0.0groupId>com.myCompany customerjar customer1.15
然后我尝试了mvn-pl customer,我得到了错误org.apache.maven.MavenExecutionException:找不到所选的项目reactor:customer
。
<modules>
<module>../../modules/module1</module>
<module>../../modules/module2</module>
</modules>
build directory->build-Projects-> pom.xml
build directory-> parent -> pom.xml