在将项目开发,打包 jar 或者 war 的时候, 我们可以通过 java -jar xxxx.jar/war 的命令直接运行,这个确实很方便
今天lz 就遇到了打包 jar 或者 war 通过 java -jar xxxx.jar/war 运行确提示没有主清单属性
在网上搜索很多都是说在 pom.xml 中添加 下面的依赖,却没有解决问题
<groupId>org.springframework.boot</group
<artifactId>spring-boot-maven-plugin</artifactId>
其实在通过 java -jar xxx.jar/war 之前, lz 直接将打包好的 war 放在 tomcat 中运行是可以,因为通过 tomcat 运行的时候,不需要 经过main 程序, 但是在启动tomcat 的时候, tomcat 的控制台却报错,大致原因是: tomcat 在解压 war 的时候有文件损坏出错,但是并没有影响程序运行,其实这里报错就是因为打包的时候,main 程序入口没有打包进去原因
当时 lz 的pom 文件是这样的
<build>
<finalName>dzj-applet</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<srouce>${jdk.version}</srouce>
<target>${jdk.version}</target>
<encoed>${project.build.sourceEncoding}</encoed>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
在 pom 中 如果没有下面两个标签, 在打包的时候会出错, 但是在通过 java -jar 运行的时候就提示 没有主清单属性
<configuration>
<mainClass>com.dzj.exx.main.ServletInitializer</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
而且不论是打包jar 和 打包 war
在target 的目录下会有这两个文件
lz 一开始打包 都只有上面那个 war 所以通过 java -jar 运行的时候一直提示没有主清单属性,而打包和在 tomcat 中部署都没有出错