jeecgboot3.8.0 改造 war发布
·
1、后端改造
1.1、jeecg-system-start pom.xml改造
<?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">
<parent>
<artifactId>jeecg-module-system</artifactId>
<groupId>org.jeecgframework.boot</groupId>
<version>3.8.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>jeecg-system-start</artifactId>
<!--格式设置为war-->
<packaging>war</packaging>
<dependencies>
<!-- SYSTEM 系统管理模块 ,war 启动排除tomcat-embed-websocket依赖包-->
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-system-biz</artifactId>
<version>${jeecgboot.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-module-apply</artifactId>
<version>${jeecgboot.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- DEMO 示例模块 -->
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-module-demo</artifactId>
<version>${jeecgboot.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 修改20250922-->
<!-- flyway 数据库自动升级 -->
<!-- <dependency>-->
<!-- <groupId>org.flywaydb</groupId>-->
<!-- <artifactId>flyway-core</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</dependency>
<!--引入web模块默认就是使用嵌入式的Tomcat作为Servlet容器-->
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-tomcat</artifactId>-->
<!-- <!– 确保不是 <scope>provided</scope>,除非部署到外部 Tomcat –>-->
<!-- </dependency>-->
</dependencies>
<!-- <build>-->
<!-- <plugins>-->
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- </plugin>-->
<!-- </plugins>-->
<!-- </build>-->
<!--下面配置删除-->
<!-- <build>-->
<!-- <resources>-->
<!-- <resource>-->
<!-- <directory>src/main/resources</directory>-->
<!-- <filtering>true</filtering>-->
<!-- <excludes>-->
<!-- <exclude>keystore.p12</exclude>-->
<!-- </excludes>-->
<!-- </resource>-->
<!-- <resource>-->
<!-- <directory>src/main/resources</directory>-->
<!-- <filtering>false</filtering>-->
<!-- <includes>-->
<!-- <include>keystore.p12</include>-->
<!-- </includes>-->
<!-- </resource>-->
<!-- <resource>-->
<!-- <directory>src/main/java</directory>-->
<!-- <includes>-->
<!-- <include>**/*.xml</include>-->
<!-- <include>**/*.json</include>-->
<!-- <include>**/*.ftl</include>-->
<!-- </includes>-->
<!-- </resource>-->
<!-- </resources>-->
<!-- <plugins>-->
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- </plugin>-->
<!-- </plugins>-->
<!-- </build>-->
</project>
1.2 application-dm8.yml 改造,enable改为false
SpringBoot 与Swagger版本冲突
#swagger
knife4j:
#开启增强配置 修改20250922
enable: false
#开启生产环境屏蔽
production: false
basic:
enable: false
username: jeecg
password: jeecg1314
1.3 FlywayConfig代码改造
由于去掉 flyway 数据库自动升级 jar,FlywayConfig报错
升级3.8.2版本的FlywayConfig.java
package org.jeecg.config.flyway;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import javax.sql.DataSource;
/**
* @Description: 初始化flyway配置 修改之后支持多数据源,当出现异常时打印日志,不影响项目启动
*
* @author: wangshuai
* @date: 2024/3/12 10:03
*/
@Slf4j
@Configuration
public class FlywayConfig {
@Autowired
private DataSource dataSource;
@Autowired
private Environment environment;
/**
* 是否开启flyway
*/
@Value("${spring.flyway.enabled:false}")
private Boolean enabled;
/**
* 编码格式,默认UTF-8
*/
@Value("${spring.flyway.encoding:UTF-8}")
private String encoding;
/**
* 迁移sql脚本文件存放路径,官方默认db/migration
*/
@Value("${spring.flyway.locations:classpath:flyway/sql/mysql}")
private String locations;
/**
* 迁移sql脚本文件名称的前缀,默认V
*/
@Value("${spring.flyway.sql-migration-prefix:V}")
private String sqlMigrationPrefix;
/**
* 迁移sql脚本文件名称的分隔符,默认2个下划线__
*/
@Value("${spring.flyway.sql-migration-separator:__}")
private String sqlMigrationSeparator;
/**
* 文本前缀
*/
@Value("${spring.flyway.placeholder-prefix:#(}")
private String placeholderPrefix;
/**
* 文本后缀
*/
@Value("${spring.flyway.placeholder-suffix:)}")
private String placeholderSuffix;
/**
* 迁移sql脚本文件名称的后缀
*/
@Value("${spring.flyway.sql-migration-suffixes:.sql}")
private String sqlMigrationSuffixes;
/**
* 迁移时是否进行校验,默认true
*/
@Value("${spring.flyway.validate-on-migrate:true}")
private Boolean validateOnMigrate;
/**
* 当迁移发现数据库非空且存在没有元数据的表时,自动执行基准迁移,新建schema_version表
*/
@Value("${spring.flyway.baseline-on-migrate:true}")
private Boolean baselineOnMigrate;
/**
* 是否关闭要清除已有库下的表功能,生产环境必须为true,否则会删库,非常重要!!!
*/
@Value("${spring.flyway.clean-disabled:true}")
private Boolean cleanDisabled;
// @Bean
// public void migrate() {
// if(!enabled){
// return;
// }
//
// DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource;
// Map<String, DataSource> dataSources = ds.getDataSources();
// dataSources.forEach((k, v) -> {
// if("master".equals(k)){
// String databaseType = environment.getProperty("spring.datasource.dynamic.datasource." + k + ".url");
// if (databaseType != null && databaseType.contains("mysql")) {
// try {
// Flyway flyway = Flyway.configure()
// .dataSource(v)
// .locations(locations)
// .encoding(encoding)
// .sqlMigrationPrefix(sqlMigrationPrefix)
// .sqlMigrationSeparator(sqlMigrationSeparator)
// .placeholderPrefix(placeholderPrefix)
// .placeholderSuffix(placeholderSuffix)
// .sqlMigrationSuffixes(sqlMigrationSuffixes)
// .validateOnMigrate(validateOnMigrate)
// .baselineOnMigrate(baselineOnMigrate)
// .cleanDisabled(cleanDisabled)
// .load();
// flyway.migrate();
// log.info("【升级提示】平台集成了MySQL库的Flyway,数据库版本自动升级! ");
// } catch (FlywayException e) {
// log.error("【升级提示】flyway执行sql脚本失败", e);
// }
// } else {
// log.warn("【升级提示】平台只集成了MySQL库的Flyway,实现了数据库版本自动升级! 其他类型的数据库,您可以考虑手工升级~");
// }
// }
// });
// }
}
打包生成jeecg-system-start-3.8.0.war
重命名jeecg-boot.war,复制到 apache-tomcat-9.0.99\webapps
cp jeecg-system-start-3.8.0.war E:\JeecgBoot-master\deploy\apache-tomcat-9.0.99-windows-x64\apache-tomcat-9.0.99\webapps\ROOT\jeecg-boot.war

2、前端改造
.env.production 修改
主要修改VITE_GLOB_API_URL、VITE_GLOB_DOMAIN_URL
增加VITE_LEGACY = true
# 是否启用mock
VITE_USE_MOCK = false
# 发布路径
VITE_PUBLIC_PATH = /
# 是否启用gzip或brotli压缩
# 选项值: gzip | brotli | none
# 如果需要多个可以使用“,”分隔
VITE_BUILD_COMPRESS = 'gzip'
# 使用压缩时是否删除原始文件,默认为false
VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
#后台接口父地址(必填)
VITE_GLOB_API_URL=http://localhost:8080/jeecg-boot
#后台接口全路径地址(必填)
#VITE_GLOB_DOMAIN_URL=http://jeecg-boot-system:8080/jeecg-boot
VITE_GLOB_DOMAIN_URL=http://localhost:8080/jeecg-boot
# 接口父路径前缀
VITE_GLOB_API_URL_PREFIX=
#即可打包出兼容旧版浏览器的代码
VITE_LEGACY = true
# 填写后将作为乾坤子应用启动,主应用注册时AppName需保持一致(放开 VITE_GLOB_QIANKUN_MICRO_APP_NAME 参数表示jeecg-vue3将以乾坤子应用模式启动)
#VITE_GLOB_QIANKUN_MICRO_APP_NAME=jeecg-vue3
# 作为乾坤子应用启动时必填,需与qiankun主应用注册子应用时填写的 entry 保持一致
#VITE_GLOB_QIANKUN_MICRO_APP_ENTRY=//qiankun.boot3.jeecg.com/jeecg-vue3
# 全局隐藏哪些布局。可选属性:sider,header,multi-tabs;多个用逗号隔开
#VITE_GLOB_HIDE_LAYOUT_TYPES=sider,header,multi-tabs
打包前端
pnpm run build
生成dist文件夹
打包war
cd ./dist
jar -cvf ROOT.war *
复制到 apache-tomcat-9.0.99\webapps
cp ROOT.war apache-tomcat-9.0.99\webapps
3、以tomcat9.0.99 为容器发布
下载:tomcat9.0.99

配置manager-gui 角色
修改apache-tomcat-9.0.99\conf\tomcat-users.xml
<role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui"/>
<user username="robot" password="robot" roles="manager-script"/>
启动tomcat

4、关掉swagger-ui
#关掉swagger-ui
springdoc:
swagger-ui:
enabled: false

注意jar包启动时候带参数:
java -jar app.jar --springdoc.swagger-ui.enabled=false

更多推荐



所有评论(0)