我刚刚开始在我的一个Java项目中使用Maven。我花了一些编辑让Maven接受了pom.xml
,但我终于让它工作了。但令我惊讶的是,它仍然使用旧版pom.xml
!
问题是我甚至无法在项目目录中找到它。我使用Notepad ++进行所有编辑。当我打开pom.xml
时,它是正确的(最新)版本。当我用jd-gui
查看JAR时,它是Maven抱怨的先前版本。这毫无意义。我尝试删除目标目录中的所有内容并运行' maven clean'无济于事。
这是当前的pom.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.project</groupId>
<artifactId>solint</artifactId>
<version>1.0</version>
<name>SolInt</name>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<plugins>
<!-- Prepares Agent JAR before test execution -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<archive>
<manifestEntries>
<Can-Retransform-Classes>true</Can-Retransform-Classes>
<Premain-Class>my.project.Agent</Premain-Class>
</manifestEntries>
</archive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.13</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.13</version>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.20.0-GA</version>
</dependency>
</dependencies>
</project>
我能够强制Maven使用最新版pom.xml
的唯一方法是将整个项目复制到另一个目录。我想了解这个谜。有什么想法吗?
编辑1:
答案 0 :(得分:1)
如果删除了所有内容,那么构建的jar文件的下一个副本应包含当时的当前pom.xml文件。
但是,如果您实际上是从〜/ .m2 / repo缓存中加载JAR文件,那么您需要执行maven安装来更新缓存,然后使用该JAR的项目将获得上次安装版本
答案 1 :(得分:0)
我建议你看看here,找出pom.xml在文件夹结构中的位置。
另一个重要的事情是了解你的文件夹结构应该如何;为此,请查看here。
基本上,你应该有这样的东西:
+ Project Folder
|
+ src
|
+ main
|
+ java
|
+ {here goes your package, classes, etc.}
|
i.e.
|
+ com
|
+ sample
|
+ HelloWorld.java
|
+ pom.xml
同样重要的是,您可以从其他Poms继承poms,并且您也可以聚合以在项目上对多个poms进行分组,请检查this以获取更多信息。
另外,我建议您使用IDE而不仅仅是Notepad ++,例如IntelliJ或Eclipse;两者都有Maven Integration。