由于需要将文件直接打包部署在linux系统下面,之前都是部署在docker上,通过DockerFile进行直接启动,没有出现过这样的问题,因此记录下问题。
问题出现或报错:
No main manifest attribute, in XXX.jar
解决办法:
将需要打包的SpringBoot工程中的pom文件修改为如下:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<archive>
<manifest>
<mainClass>com.xx.xx.xx.XXXApplication</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
注意: 是在<build></build>标签之下。
此时通过IDEA打包即可正常运行。
小技巧:使用java -jar命令行运行jar包,当退出命令行时就会立即终止程序,可以通过下面的命令,使工程一直运行在后台。
nohup>eureka_logs java -jar eureka-1.0.0-SNAPSHOT.jar 2>&1 &
其中eurka_logs是日志的名称,eureka-1.0.0-SNAPSHOT.jar为需要运行的jar包。