【发布时间】:2013-02-18 15:03:04
【问题描述】:
我已经有一个工作解决方案,我可以使用 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 的行为,这可能很难(或不可能做到)。这不是这里的范围。还有这种注解
【问题讨论】:
-
为什么更好?我更喜欢 Maven 方法。将构建信息存储在类本身中似乎不是一个好习惯。如果您决定确实要构建该类怎么办?您现在需要更改代码。
-
把它们放在 src/test/java.默认的 Maven 配置会知道它们是测试类。
-
@cowls :它更好,因为它更通用。我想添加到我的系统但不希望它们暴露的所有新东西都会得到这个注释。不用插手 pom 文件。我想这是风格问题。
-
我认为 sbk 可能就在这里,如果您不希望它们在生产中使用,它们不应该在 src/main/java 中。假设它们只是测试类,将它们放在 src/test/java 中,Maven 会处理它。
-
这些是供内部使用的测试服务(在交付时获取整个应用程序的内部消费者,以及这些额外的服务)。所以把它们放在测试包中并不好。我现在有一个带有名称约定的解决方案,并且目前跳过这些类的战争包装对我有用。
标签: java maven annotations