项目之前打包是通过idea配置进行打包的。
操作步骤:
1. Project Structure => Artifacts => "+" => JAR => Empty
2. 配置好Name 和 Output directory
3. Output Layout => "+" => Module Output => "OK"
4. 点选jar => create manifest => 配置 Main class => "OK"
5. 打包 ===> Build Artifacts
最后会在指令的路径得到jar包。解压后的jar包结构如下:
即 配置文件和com同级, 同时是个可执行的jar,并且排除了依赖包。
我希望能通过mvn package 指令进行打包得到相同效果。
在pom.xml中配置
<groupId>......</groupId>
<artifactId>......</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
然后build配置如下
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
最后在Maven Projects中选择需要打包的项目,然后clean下,在package下,jar包就打包好了
外部有一个和你的jar包同级的config文件夹,里面有application.properties文件
我是这样子的效果
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cn.com.sandi</groupId>
<artifactId>smartplatform</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>SmartPlatform</name>
<description>Demo project for Spring Boot</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--此处省略依赖>
</dependencies>
<!-- 打包 jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>cn.com.sandi.smartplatform.SmartPlatformApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<finalName>SmartPlatform</finalName>
</build>
<!-- package jar end-->
</project>