spring boot 运行 jar 或 war 提示没有主清单属性解决

在将项目开发,打包 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 中部署都没有出错

猜你喜欢

转载自blog.csdn.net/yangyun901222/article/details/82288266