1、总体思路
把 SpringCloud 项目打包获得 jar ,然后使用指定版本的jdk 运行 jar
2、操作
2.1、把 SpringCloud 打包为 jar
生成 jar
- 具体被打包的子 pom 文件声明为 jar 类型
<artifactId>starter</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
- 通过 父 pom 声明 自定义 jar 的名称
<build>
<finalName>bestcxx-starter</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<!-- <version>3.1.0</version>-->
<configuration>
<delimiters>
<delimit>$</delimit>
</delimiters>
</configuration>
</plugin>
</plugins>
</build>
- Idea 增加 package 命令,指定 starter 子模块
如果你需要单独的profile 可以设置 profile,比如 dev
package -DskipTests
Working-directory
运行 jar
使用jar包启动
- 最简单的:
java -jar name.jar
- 指定jdk版本 和 端口
#
/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home/bin/java -jar name.jar
--server.port=8080
3、打包时多版本控制
比如我们有 application-dev.yml 和 application-k8s.yml 两个文件。
-
通过修改 active 决定具体加载的配置文件是哪一个
-
application-k8s.yml部分关键信息如下
datasource:
type: com.alibaba.druid.pool.DruidDataSource
#更多配置参考 https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter
#url: jdbc:mysql://k8s 中 mysql service name:对应 port/test?characterEncoding=utf8&useSSL=true&serverTimezone=UTC&rewriteBatchedStatements=true
url: jdbc:mysql://mysql-service:3306/test?characterEncoding=utf8&useSSL=true&serverTimezone=UTC&rewriteBatchedStatements=true
username: xxx
password: xxxxxxxxx
driver-class-name: com.mysql.cj.jdbc.Driver
#driver-class-name: com.mysql.jdbc.Driver
#开启sql语句自动加载,只认识名为: schema-all.sql和schema.sql和data-all.sql和data.sql的sql语句
# initialization-mode: always
#redis
redis:
database: 0
host: redis-service # k8s 中 redis service name
port: 6379 # k8s 中 redis service port
password:
jedis:
pool:
max-active: 8
max-idle: 8
max-wait: -1ms
min-idle: 0