1.新建springboot的maven工程
在pom文件引入依赖包
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.4.0.RELEASE</version>
</dependency>
</dependencies>
启动类App.java
@SpringBootApplication
public class App{
public static void main( String[] args ) {
SpringApplication.run(App.class, args);
}
}
测试类controller
@RestController
@RequestMapping("/arthas")
public class ArthasController {
@RequestMapping("/abc")
public String abc(){
return "success";
}
}
然后执行maven install命令将工程打成jar,使用java -jar jar包 。然后回车运行
本以为一切OK?谁知报这个错,什么原因???
主要是:MANIFEST.MF文件,没有指明程序的入口以及版本信息等内容
Main-Class代表了Spring Boot中启动jar包的程序
Start-Class属性就代表了Spring Boot程序的入口类,这个类中应该有一个main方法
Spring-Boot-Classes代表了类的路径,所有编译后的class文件,以及配置文件,都存储在该路径下
Spring-Boot-Lib表示依赖的jar包存储的位置这些值都是SpringBoot打包插件会默认生成的,如果没有这些属性,SpringBoot程序自然不能运行,就会报错:jar中没有主清单属性,也就是说没有按照SpringBoot的要求,生成这些必须的属性。
解决方法,在pom文件中加入
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.xqc.arthas.App</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
mainClass:指明启动类的路径+名称,修改完上面文件,再次运行,一切OK