我是maven的新手,我也没有很多Eclipse经验。
要从Eclipse中构建java文件,我右键单击文件并选择Build Path - >排除。这适用于Eclipse中的“on-save”编译,但它不会传播到maven项目,因此当我使用mvn install构建项目时,它会尝试编译排除的源。
我做了一些搜索,结果指向编译器插件和<排除>功能,但编辑maven项目文件以暂时从构建中排除文件似乎有点尴尬。
什么是(暂时)从maven构建中排除源的“正确”方法,是否有一种简单的方法可以通过m2eclipse插件或其他方式从Eclipse中执行此操作?
答案 0 :(得分:7)
您可以使用< excludes> Maven编译器插件中的参数,用于临时从编译中排除文件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<excludes>
<exclude>**/model/*.java</exclude>
</excludes>
</configuration>
</plugin>
如果您正在使用M2Eclipse插件并运行Maven-&gt;更新项目配置,则pom中的排除文件也应自动从eclipse编译中排除。
答案 1 :(得分:0)
如果你选择maven作为项目管理,那么你真的必须采用“maven方式”。
Eclipse基于项目属性中指定的类路径构建项目,它与maven编译器插件的类路径无关。 “mvn compile”仅由编译器插件的配置驱动。
通常这些“临时”更改由附加到maven目标的jVM参数(您从cmd运行的maven插件/ Mojo目标)处理,您创建(自定义一个)并保存在“Run as”&gt;中。 “运行配置”。我使用命令行(shell)而不是m2eclipse作为maven。更改参数对我来说更快。
要找出你可以使用的参数,你可以在你的maven依赖项中指定特定的Mojo(maven插件)(只是暂时的)并在eclipse中查看它的源代码,你可以看到可以通过“ -D“JVM参数。或者您可以查看文档。
在编译器插件中有一个参数private Set<String> excludes = new HashSet<String>();
,但遗憾的是集合参数不能指定为JVM参数...所以剩下的唯一选择是在pom.xml中配置插件声明。
然后还有个人资料,但它们对这种情况没用。
总结一下,你的要求相当罕见,从编译中排除java类不是通常的要求。
我希望它有所帮助