2011-01-25 40 views
4

我对maven很陌生,而且我也没有太多的Eclipse经验。什么是“正确”的方式(临时)从Maven构建中排除源代码,有没有一种简单的方法可以从Eclipse中完成?

要建立在Eclipse排除java文件,我右键单击该文件,并选择构建路径 - >排除。这对于Eclipse中的“on-save”编译非常有用,但它不会传播到maven项目,因此当我使用mvn install构建项目时,它会尝试编译排除的源代码。

我做了一些搜索,结果指向编译器插件,<不包括>的功能,但是编辑maven项目文件以暂时从构建中排除文件似乎有点尴尬。

什么是“正确”的方式(暂时)排除一个Maven构建来源,有一个简单的方法,从Eclipse中做到这一点,通过m2eclipse插件或以其他方式?

回答

0

,如果你选择的Maven项目管理,那么你真的必须这样做了“Maven的方式”。

Eclipse构建基于项目属性中指定的类路径的项目,并没有涉及到的Maven编译器插件的类路径。 “mvn compile”仅由编译器插件的配置驱动。

通常,这些“临时”更改由附加到maven目标(您从cmd运行的maven插件/ Mojo目标)上添加的JVM参数处理,您创建(自定义一个)并保存为“Run as”> “运行配置”。我使用命令行(shell)而不是m2eclipse作为maven。改变参数对我来说更快。

要找出你可以使用的参数,你可以在你的maven依赖关系(只是暂时)中指定特定的Mojo(maven插件),并在eclipse中查看它的源代码,你可以看到可以通过“-D”JVM参数。或者你可以检查文档。

在编译器插件有一个参数private Set<String> excludes = new HashSet<String>();可惜采集参数不能被指定为JVM参数......所以,唯一的选择就是配置pom.xml的插件声明。

然后也有配置文件,但它们不是这种情况下非常有用。

要总结一下,你的要求是相当罕见的,从编译排除Java类是没有通常的要求。

我希望它能帮助

7

您可以使用< excludes>参数的Maven Compiler插件从编译暂时排除文件。

 <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->更新项目配置,在POM中排除的文件应该会自动得到排除日食编译为好。

+0

感谢您的示例代码,我想这里真的没有捷径:) – OskarAlex 2011-01-27 10:22:05

相关问题