我已经有一个working解决方案,我可以使用 Maven 指定在使用特定 Maven 配置文件时不编译哪些类。
但我想使用通用解决方案并使用注释代替
我目前的解决方案就像
<plugin>
<!-- Exclude some web services used only for internal testing -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<optimize>true</optimize>
<excludes>
<exclude>**/something/*ClassPattern.java</exclude>
</excludes>
<testExcludes>
<exclude>**/something/*ClassPatternTest.java</exclude>
</testExcludes>
</configuration>
</plugin>
但有些事情就像
@NotCompiledForProduction
在课堂上会很好。
在我看来,如果不改变 Maven 的行为,这可能很难(或不可能做到)。这不是这里的范围。还有这种注释
您不能(我假设)使用注释来确定向 java 编译器提供哪些源代码,因为您需要首先编译源代码来处理注释。
看来您需要在 Maven 项目中创建不同的模块:一个模块使用生产代码生成 jar 文件,另一个模块生成一个包含测试实现且依赖于生产工件的 jar 文件。
如果代码确实需要位于同一个maven模块中,那么代码应该always被编译。但是您可以使用maven-jar-plugin
创建多个工件package
阶段:默认artifactId
.jar, 和artifactId
-test-lib.jar人工制品。您可以通过为插件指定多次执行并使用<includes>
and <excludes>
根据需要分割 jar 文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)