什么是(暂时)从maven构建中排除源的“正确”方法,是否有一种简单的方法可以从Eclipse中执行此操作?

时间:2011-01-25 14:59:21

标签: eclipse maven-2 maven-3 m2eclipse

我是maven的新手,我也没有很多Eclipse经验。

要从Eclipse中构建java文件,我右键单击文件并选择Build Path - >排除。这适用于Eclipse中的“on-save”编译,但它不会传播到maven项目,因此当我使用mvn install构建项目时,它会尝试编译排除的源。

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

什么是(暂时)从maven构建中排除源的“正确”方法,是否有一种简单的方法可以通过m2eclipse插件或其他方式从Eclipse中执行此操作?

2 个答案:

答案 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类不是通常的要求。

我希望它有所帮助