问答

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

作者:admin 2021-04-20 我要评论

build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-jar-plugin/artifactId version2.4/version configuration archive manifest m...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
<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 路径有问题?

求指点,感谢!

###

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

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

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • nginx响应速度很慢

    nginx响应速度很慢

  • 点击选中的多选框,会在已选那一栏显示

    点击选中的多选框,会在已选那一栏显示

  • PHP 多态的理解

    PHP 多态的理解

  • 关于C语言中static的问题

    关于C语言中static的问题

腾讯云代理商
海外云服务器