Maven正在对Eclipse .classpath进行不必要的更改

问题描述

我最近在pom.xml中添加了一些新项目。由于某些原因,在添加了这些新项目之后,我运行了Maven项目更新,它修改了Eclipses .classpath。

以下是添加的pom.xml项:

 <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>${org.slf4j-version}</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>${log4j-version}</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>${log4j-version}</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>${log4j-version}</version>
    <exclusions>
        <exclusion>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
        </exclusion>
        <exclusion>
            <groupId>javax.jms</groupId>
            <artifactId>jms</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.sun.jdmk</groupId>
            <artifactId>jmxtools</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.sun.jmx</groupId>
            <artifactId>jmxri</artifactId>
        </exclusion>
    </exclusions>
    <scope>runtime</scope>
</dependency>

在Maven完成项目更新后的.classpath中,它添加了:includes =“ ** / *。java”

<classpath>
    <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>

...

</classpath>

因此,当我运行Java时,找不到我的所有资源,因为它们不是.java。我不确定为什么添加到Maven的那些新项目突然使它修改了Eclipse .classpath。我尝试手动删除include =“ =” / *。java“,但是一旦Maven进行了另一个项目更新,它将放回原处。

有人知道为什么会这样吗?感谢您的帮助,谢谢。

解决方法

如果您在Eclipse中使用Maven,则m2e插件将控制.classpath文件。

您需要通过POM而不是通过.classpath来管理资源。