近日试着把Springboot程序发布并单独运行。于是,采用传统方法,用Aritifacts方式导出。导出以后,发现JAR包生成了,但运行以后,发现“jar中没有主清单属性”。

找相关资料,有的资料给的方法是用Maven导出。
步骤是:
1)选择Maven视图;
2)选择“package”。

导出的包,一般在target文件夹之下。
运行相关包之后,“jar中没有主清单属性”这一问题解决了。
但问题在于导出的包一般可能需要本地依赖库,需要同时导出本地依赖库。
导出方法为:
1)在pom中加导出库路径配置:
<dependency>
<!--groupId和artifactId随意写,注意不重复即可!-->
<groupId>richers.com</groupId>
<artifactId>test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--scope必须是system, systemPath必须正确-->
<scope>system</scope>
<systemPath>${project.basedir}/../lib/test.jar</systemPath>
</dependency>
2)在pom中设置插件。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- 本地jar包还需要引入相关的springboot依赖,且版本号不可省,得显式写出 -->
<version>2.4.1</version>
<configuration>
<mainClass>自己定义的main类</mainClass>
<includeSystemScope>true</includeSystemScope>
</configuration>
<executions>
<execution>
<!-- 必须为repackage,否则无法打包 -->
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
3)在pom中设置资源
<resources>
<resource>
<directory>lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
再运行Maven导出库,运行导出库发现库一切正常。
博客介绍了如何解决Springboot应用导出JAR包时缺少主清单属性的问题,以及如何在Maven中配置打包包含本地依赖库。通过在pom.xml中添加相关配置,使用Maven的spring-boot-maven-plugin插件,可以成功打包并运行包含本地库的Springboot应用。
&spm=1001.2101.3001.5002&articleId=125867852&d=1&t=3&u=a024a18f98b2459a8f53fcf7545e8c26)
1108

被折叠的 条评论
为什么被折叠?



