4

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

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

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

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

4

2 回答 2

7

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

        <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->Update Project Configuration,则 pom 中排除的文件也应该自动从 eclipse 编译中排除。

于 2011-01-27T05:58:11.193 回答
0

如果你选择 maven 作为项目管理,那么你真的要按照“maven 方式”来做。

Eclipse 基于项目属性中指定的类路径构建项目,它与 maven 编译器插件的类路径无关。“mvn compile”仅由编译器插件的配置驱动。

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

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

在编译器插件中有一个参数private Set<String> excludes = new HashSet<String>();,但不幸的是不能将集合参数指定为 JVM 参数......所以剩下的唯一选择是在 pom.xml 中配置插件声明。

然后还有配置文件,但它们对这种情况没有用。

总而言之,您的要求相当罕见,从编译中排除 java 类不是通常的要求。

我希望它有帮助

于 2011-01-26T14:22:25.617 回答