将程序打成可执行jar包遇到的坑
Springboot打包成可执行jar包
需要在maven中添加这两个plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgs>
<!-- 过期的方法的警告-->
<arg>-Xlint:deprecation</arg>
</compilerArgs>
<compilerArguments>
<!-- 是否输出所有的编译信息(包括类的加载等)-->
<!--<verbose />-->
<!-- 解决maven命令编译报错,因为rt.jar 和jce.jar在jre的lib下面,不在jdk的lib下面,
导致maven找不到(java7以后会出现这个问题),将这2个jar包拷贝到jdk的lib下面估计也好使-->
<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
然后用手动输入mvn package打包命令,即可生成在target里,最后需要注意里面是不是有确定了MAINFASET.MF文件,里面是否指定了启动类。
再就是通过idea的project structure,在里面手动的arfartifacts指定生成jar包,记得选择主程序入口,然后别忘了在里面添加日志文件,build之。
再观察里面的MAINFAST.MF是否有入口,没有就替换一下。最后java -jar xx.jar启动