我有以下问题.我想在测试 - 编译阶段排除一些.java文件(**/jsfunit/*.java),另一方面我希望在编译阶段包含它们(id我用tomcat启动tomcat:运行目标)
我的pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<!-- <excludes>
<exclude>**/*JSFIntegration*.java</exclude>
</excludes> -->
</configuration>
<executions>
<!-- <execution>
<id>default-compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<includes>
<include>**/jsfunit/*.java</include>
</includes>
</configuration>
</execution>-->
<execution>
<id>default-testCompile</id>
<phase>test-compile</phase>
<configuration>
<excludes>
<exclude>**/jsfunit/*.java</exclude>
</excludes>
</configuration>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但它不起作用:default-testCompile中的exclude不会过滤这些类.如果我删除了注释,那么所有匹配的类**/jsfunit/*.java都会被编译,但只有触摸它们!
如何在Maven 3默认生命周期中禁用不需要的阶段?
通过禁用我完全意味着,完全从生命周期中删除相位,以便甚至不调用它.
我可能需要一个自定义的生命周期,但我找不到一种简单的方法来直接定义它pom.xml.看来我需要编写一个插件来列出我想要的阶段.
例如,我想default-testResources,default-testCompile并且default-test阶段永远不会发生,并从此处转换我的构建日志:
[INFO] ------------------------------------------------------------------------
[INFO] Building HelpDesk Webapp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ helpdesk ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory d:\proj\HelpDesk\repo\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ helpdesk ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ helpdesk ---
[INFO] Not copying test resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:testCompile (default-testCompile) @ …Run Code Online (Sandbox Code Playgroud)