问题描述
我最近在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
来管理资源。