近日试着把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导出库,运行导出库发现库一切正常。