java – Maven2编译器自定义执行源目录和目标目录
发布时间:2020-12-14 05:35:16 所属栏目:Java 来源:网络整理
导读:我想在不同的阶段运行maven编译器插件,并使用不同的sourceDirector和destinationDirector,以便可以使用除src / main / java和src / test / java之外的目录的代码. 我认为这个解决方案看起来像下面那样,我将其连接到的阶段是预集成测试.但是,testSourceDirect
|
我想在不同的阶段运行maven编译器插件,并使用不同的sourceDirector和destinationDirector,以便可以使用除src / main /
java和src / test / java之外的目录的代码.
我认为这个解决方案看起来像下面那样,我将其连接到的阶段是预集成测试.但是,testSourceDirectory和testOutputDirectory的属性似乎没有以这种方式指定,因为它们位于POM的部分. <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>compile mytests</id>
<goals>
<goal>testCompile</goal>
</goals>
<phase>pre-integration-test</phase>
<configuration>
<testSourceDirectory>${basedir}/src/inttest/java</testSourceDirectory>
<testOutputDirectory>${basedir}/target/inttest-classes</testOutputDirectory>
</configuration>
</execution>
</executions>
</plugin>
有没有办法让这个插件在不同的阶段编译不同的目录,而不影响它的默认操作? 解决方法
源目录位于< build>>内的编译器插件之外.元素,所以这不行.
您可以使用build-helper-maven-plugin的add-source和add-test-source为集成测试指定其他源目录,但这不会删除现有的源目录. <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>add-it-source</id>
<phase>pre-integration-test</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${basedir}/src/inttest/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
如果将add-test-source目标绑定在testCompile目标之前运行,则将包括集成测试.注意你希望它们被输出到target / test-classes,所以surefire插件会找到它们. 为了处理标准测试源的删除,我写了一个小插件来修改模型以删除现有的testSource位置,然后再添加它们进行集成测试. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
