demo.jar没有主清单
maven项目想开发http接口时 打成jar没有主清单
参考
https://blog.csdn.net/qq_31868149/article/details/122652305
http://www.manongjc.com/detail/29-etukibtsbwxttjp.html
- 第一步
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
增加spring boot jar
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot.version}</version>
</dependency>
增加文件 DemoApplication.java
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableScheduling
@SpringBootApplication(scanBasePackages="你的路径")
public class DemoApplication {
public static void main(String[] args) {
// SpringApplication.run(DemoApplication.class, args);
// 换这个是因为 XXX 执行不成功 同时 -Djava.awt.headless=false\ vm里面加上
SpringApplicationBuilder builder = new SpringApplicationBuilder(DemoApplication.class);
builder.headless(false).run(args);
}
}
修改application.properties 文件
spring.application.name= /
banner.charset=UTF-8
server.tomcat.uri-encoding=UTF-8
server.servlet.encoding.charset=UTF-8
server.spring.http.encoding.enabled=true
server.spring.http.encoding.force=true
spring.messages.encoding=UTF-8
server.servlet.context-path=/demo
server.port=8848
controller类
@RestController
@RequestMapping("/query")
public class DemoController {
@GetMapping("/userDetails")
@ResponseBody
public Object userDetails(String twUserId) {
return null;
}
}
-
第二步
- file–>project structure 弹框后选中Atifacts—> + ---->jar---->from module with dependenceis
- 选择一个Main Class,然后指定META-INF/MANIFEST.MF的路径为src下(注意不要放到main/java目录下,否则打成的jar中META-INF/MANIFEST.MF不含有Main-Class信息)