Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 跳过未修改模块的maven构建?_Java_Maven_Build - Fatal编程技术网

Java 跳过未修改模块的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

我使用maven多模块构建,如下所示

<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