1、在IDEA中点击File-New Project如图
2、点击Next下一步然后创建项目,项目名根据自己需求
3、创建好的项目是这样的如图
4、在pom.xml引入maven坐标
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.0.RELEASE</version>
<relativePath/><!-- lookup parent from repository -->
</parent>
<groupId>org.example</groupId>
<artifactId>demo</artifactId>
<version>1.0-SNAPSHOT</version>
<name>demo</name>
<description>demo</description>
<properties>
<java.version>1.8</java.version>
<fastjson.version>1.2.47</fastjson.version>
<knife4j.version>2.0.8</knife4j.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
5、在idea中设置Settings中设置你Maven路径
6、创建启动类xxxApplication
7、 在resources新建application.yml
server:
port: 8999
servlet:
session:
timeout: 28800
context-path: /demo-api
tomcat:
uri-encoding: UTF-8
spring:
application:
name: demo-api
profiles:
active: @env@
8、在pom.xml添加打包插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- 同时发布本地引用包 -->
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<!-- 打包时跳过测试 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<!-- 打包插件 -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptors>
<!--指定assmbly配置文件路径-->
<descriptor>assembly.xml</descriptor>
</descriptors>
<finalName>${project.artifactId}</finalName>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>
</plugins>
</build>
9、在pom.xml添加打包profiles配置
<profiles>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>
10、新增assembly.xml
<assembly>
<id>${env}</id>
<formats>
<!--指定打包格式-->
<format>tar</format>
</formats>
<fileSets>
<fileSet>
<!--自定义的启动项目的脚本文件-->
<directory>bin</directory>
<outputDirectory></outputDirectory>
<includes>
<!--指定要包含的文件名称-->
<include>*.sh</include>
<!-- <include>*.bat</include>-->
</includes>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<!--指定配置文件的位置、要包含的配置文件和配置文件输出目录-->
<directory>src/main/resources</directory>
<outputDirectory>config</outputDirectory>
<includes>
<include>application-${env}.yml</include>
</includes>
</fileSet>
<fileSet>
<!--指定数据库脚本文件的以及输出目录-->
<directory>sql</directory>
<outputDirectory>sql</outputDirectory>
<includes>
<include>*.sql</include>
</includes>
</fileSet>
<fileSet>
<!--指定jar包和输出位置-->
<directory>target</directory>
<outputDirectory>lib</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
<fileSet>
<!--指定日志文件和输出位置-->
<directory>logs</directory>
<outputDirectory>logs</outputDirectory>
<fileMode>0755</fileMode>
<excludes>
<exclude>**/*</exclude>
</excludes>
</fileSet>
</fileSets>
</assembly>
11、在resources下新建application-dev.yml 比如我要打包开发包jar
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/hwstest?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=UTC
username: root
password: hanwenshen
type: com.alibaba.druid.pool.DruidDataSource
druid:
maxActive: 40
initialSize: 1
maxWait: 30000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
12、打包demo.jar
这样才你的target下就可以看到你的包,然后执行java -jar xxxxx.jar 就可以运行了