求指点: 这个maven打包生成的jar为什么 执行不成功?

发布于 2022-09-12 22:48:40 字数 2473 浏览 12 评论 0

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.sachin.pdf.TestPDF</mainClass>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.10</version>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <type>jar</type>
                        <includeTypes>jar</includeTypes>
                        <outputDirectory>${project.build.outputDirectory}/lib</outputDirectory>
                    </configuration>
                </execution>
            </executions>
            <configuration>
                <outputDirectory>${project.build.outputDirectory}/lib></outputDirectory>
            </configuration>
        </plugin>
    </plugins>

上面配置将 项目的依赖 拷贝到 target/classes/lib目录下,然后打包到jar中。

最终生成的jar中也确实 在lib目录下存在所有的项目依赖jar
image.png

在生成的jar的mainfest文件中 指定了class-path
image.png


执行java -jar 报错如下:
image.png

问题分析:
看报错原因是找不到依赖,但是我在maven打包生成的 jar文件中的lib目录下 的 ox-app-2.0.22.jar依赖 中看到 类PDOutlineNode 是存在的。 而且maven 生成的manifest.mf文件中也指定了class-path为lib目录下的jar。
为什么还会报错找不到类?

两种可能:
(1)manifest.mf文件中配置的class-path未生效
(2)class-pat 属性配置的 lib/xx.jar 路径有问题?

求指点,感谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

盗心人 2022-09-19 22:48:40

看一下这个
https://stackoverflow.com/a/3...

你的manifast里因指定的lib,是相对jar包的,不是jar包内的目录。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文