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

<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 路径有问题?

求指点,感谢!

阅读 3k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题