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

Java Maven正在对Eclipse.classpath进行不必要的更改,java,eclipse,maven,classpath,pom.xml,Java,Eclipse,Maven,Classpath,Pom.xml,我最近在pom.xml中添加了一些新项目。出于某种原因,在添加这些新项之后,我运行了一个Maven项目更新,它修改了Eclipses.classpath 以下是添加的pom.xml项: <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${org.slf4j-versi

我最近在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>

org.slf4j
jcl-over-slf4j
${org.slf4j版本}
运行时
org.apache.logging.log4j
log4j型芯
${log4j版本}
运行时
org.apache.logging.log4j
log4j-slf4j-impl
${log4j版本}
org.apache.logging.log4j
log4japi
${log4j版本}
javax.mail
邮件
javax.jms
jms
com.sun.jdmk
jmxtools
com.sun.jmx
jmxri
运行时
在Maven执行项目更新后的.classpath中,它添加了:include=“***.java”


...
因此,当我运行java时,找不到我的任何资源,因为它们不是.java。我不知道为什么添加到Maven中的那些新项目会使它突然修改Eclipse.classpath。我尝试手动删除include=“***.java”,但一旦Maven执行另一个项目更新,它就会将其放回原处


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

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


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

首先,
.classpath
中的更改不是由Maven完成的,而是通过Eclipse中的Maven集成(m2e?)来完成的……问题是:这为什么是一个问题?你所说的….
是什么意思?正因为如此,当我运行java时,没有找到我的资源,因为它们不是。。。资源位于
src/main/Resources
src/test/Resources
中的测试资源?确实,我可以将属性文件移动到资源包中。我仍然很好奇为什么Eclipse中的Maven集成添加到类路径中只查看java源代码。您可以移动它们吗?我强烈建议你这样做。这个问题不仅仅与Maven或Eclipse等有关,它违反了Maven的理念。。。IDE中的集成尝试将信息映射到Eclipse的内部信息中(在本例中为查找所有文件和正确的目录(据我所知为默认目录)。此外,我强烈建议不要接触这些文件,因为它们每次都会重新生成…所以手动更改它们是没有意义的。事实是pom.xml文件……我所说的资源是指属性文件。不是java资源。application.properties等。因为.classpath被更改为只查看.java对象,所以在运行时,任何其他内容(如属性文件)都不能作为资源显示。正如khmarbaise所说,将它们放入
src/main/resources
。或者在POM中配置另一个资源目录。
<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>