java运行的maven项目和manifest.mf多年来的差异

rekjcdws  于 2021-06-26  发布在  Java
关注(0)|答案(1)|浏览(271)

我有一个项目是运行几年前,现在它需要被修复,并运行到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替换新的manifest.mf时,一个问题消失了,但这更多是一个解决方法,然后修复。
我正在使用intelij和'package-f pom.xml'。是什么导致了这条道路的改变,我怎样才能把它恢复到正确的阶段?

wmomyfyw

wmomyfyw1#

我找到了解决这个问题的办法。
我改了这部分:

<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>
...

相关问题