使用Maven运行项目和MANIFEST之间的差异.MF多年来



我有一个几年前运行的项目,现在它需要修复并再次运行到jar。在使用相同的pom.xml运行它之后,访问包含所有使用过的库的"lib"文件夹时会出现问题。我发现了MANIFEST的问题。MF文件所使用的库的路径无效。例如:

  • 旧:lib/nimbus-jose-jwt-3.1.2.jar
  • 新:lib.com/nimbusds/nimbus-jose-jwt/3.1.2/nimbus-jose-jwt-3.1.2.jar

当我在JAR文件中手动导航并替换新的MANIFEST时。旧问题的MF消失了,但这更多的是一种变通方法,然后解决。

我使用的是InteliJ和"package-fpom.xml"。是什么导致了这种路径的改变?我如何将其恢复到适当的阶段?

我找到了这个问题的解决方案。

我更改了这个部分:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>

并增加了中间线:

...
<addClasspath>true</addClasspath>
<classpathLayoutType>simple</classpathLayoutType>
<classpathPrefix>lib/</classpathPrefix>
...

最新更新