搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
代码探险家
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
MySQL子查询_mysql 子查询 原理
2
基于STM32单片机的数字电压表(液晶1602)(Proteus仿真+程序)_stm32控制电压输出 protues
3
PostgreSQL教程(十三):SQL语言(六)之类型转换_pgsql 类型转换
4
Hadoop 入门教程(超详细)_hadoop教程
5
【数据库】实际项目上,用到的数据库,涨涨知识_使用过什么数据库
6
Yolov8标签匹配算法TaskAlignedAssigner原理及代码注解
7
Python基础之多进程_python多进程
8
【已解决】 error: subprocess-exited-with-error × python setup.py egg_info did not run successfully._error: subprocess-exited-with-error 脳 python setup
9
第一章:ReactFlow基础概念与安装
10
AngularJS总结_在angularjs中,视图指【】编写的页面,在【】中编写业务代码。
当前位置:
article
> 正文
一次较为复杂的maven工程隔离开发和生产环境的处理实践_如何让maven 一来在开发环境不生效,生产环境生效
作者:代码探险家 | 2024-07-17 00:47:48
赞
踩
如何让maven 一来在开发环境不生效,生产环境生效
一。背景
jwell-km-api-client是web工程,依赖了一个jar工程jwell-wms-api。
jwell-wms-api工程里面有一个xml文件配置了一个地址。地址分为测试地址和正式地址。
jwell-km-api-client工程在打包时,要区分测试环境和正式环境。包括其依赖的jwell-wms-api工程里面的地址也要自动区分测试环境和正式环境。
二。处理过程
之前我做过web工程resources下面参数的处理。文章地址是
http://blog.csdn.net/qq_37372909/article/details/78522414
如果我在web工程通过上次文章中的方法,只能修改web工程本身resources下面的配置文件,无法修改起依赖的jar工程
jwell-wms-api内部xml。
我苦想,web工程与jar工程是通过依赖建立起关系的。如果让web工程2个环境依赖不同的2个jar包,这个问题能解决。但是前提是2个环境的web工程都是同一份源代码,2个jar也是同一份源代码。这个问题该怎么处理呢?我思考了一会。
解决初步思路为
让两个不同环境的web工程分别依赖2个不同环境的jar(版本号不同)组件
。
具体处理过程如下:
修改
jwell-wms-api中的xml配置,把写死配置修改为参数。
再修改其pom文件,添加默认的参数配置。
再确认pom修改了自动参数替换,这样3个配置后,开发默认的测试环境就解决了。
但是仅仅做这些是不能解决问题的,就算在jenkins上正式环境的配置设置为正式地址。但是如果测试和正式都要打包,上传maven私库里面的组件就会一会是正式地址,一会是测试地址,会造成web工程依赖错误环境组件的可能。我准备继续改造
jwell-wms-api的配置参数,让他上传到私库为2个不同版本的组件,默认版本号为1.0.0的是测试环境,1.0.0-official版本为正式环境地址。再让2个不同环境的
jwell-wms-api-client打包任务分别依赖这2个jar组件,就能达到理想效果了。
jwell-wms-api的配置改造为:修改pom中版本定义为动态参数,并配置默认版本号为1.0.0
再把正式环境的配置添加到jenkins服务器上面setting.xml配置文件中profile里面
添加了2个参数,一个是正式环境的地址,一个是正式环境的版本号
再在jenkins上面建立2个环境对应的打包任务。
下面是正式环境的任务配置,该任务运行,就会把参数修改,并发布一个版本号为1.0.0-official的组件到maven私库。
下面是测试环境对应的配置,这样会发布一个版本为1.0.0的组件到maven私库
到这里,一份源代码,2个不同环境配置对应了2个不同的版本号组件准备好了。只需要修改web工程
jwell-wms-api-client依赖不同版本的jar工程就好了。
修改
jwell-wms-api-client的pom文件,把
jwell-wms-api组件依赖的版本号修改为动态参数。并设置默认版本号参数为1.0.0,就是默认依赖的测试环境对应的版本号。
再为2个不同的环境准备参数,修改jenkins服务器setting文件。
测环境参数只配置了地址,版本号已经默认过了,其实测试地址也默认过了,可以不配置的,哈哈哈。
正式环境参数配置了jar工程需要的2个参数和web工程需要的不同版本号1个参数。
再在jenkins建立
web工程
jwell-wms-api-client的
2个环境打包任务。
下面是测试环境的配置,虽然使用的profile是official,但是这组参数其实只是测试服务器需要的配置。
下面是jenkins配置的web工程正式环境对应的任务
这样,任务就完美完成了。
web工程
jwell-km-api-client正式环境打包会依赖一个版本号为1.0.0-official的组件。
web工程
jwell-km-api-client测试环境打包会依赖一个版本号为1.0.0的组件。
但是2个组件源代码只有一份,都是jwell-km-api。只是发布到了maven私库是2个版本,1.0.0是测试环境版本,1.0.0-official是正式环境版本。
哈哈哈!
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
【wpsshop博客】
推荐阅读
article
jdb
+
maven
+
docker
(
jetty
) 在线
调试
java
服务...
公司因为安全需要,没有开放
java
远程
调试
端口,记录下进
docker
在线
调试
java
基本点: pom文件
maven
-c...
赞
踩
article
Maven
隐式
依赖
包
冲突
导致程序报错_
xml
-
apis
...
Maven
隐式
依赖
包
冲突
导致程序报错处理
xml
节点的程序报错,提示“The method getTextConte...
赞
踩
article
springboot
毕设项目绿色旅游生态园
管理系统
v7rxl
(
java
+VUE+Mybatis+Ma...
Jdk1.8 + Tomcat8.5 +
Mysql
+ HBuilderX(Webstorm也行)+ Eclispe(...
赞
踩
article
IDEA
社区
版 + jdk +
maven
+
springboot
配置_
idea
社区
版
可以
运行s...
作为一名 java 程序员,一个好的 IDE 肯定
可以
带来很好的编码体验。现在大多用的 IDE 都是
IDEA
,然而最头...
赞
踩
article
MacOS
安装
JDK+
Maven
+
Idea
插件+
nvm
等_
mac
安装
jdk...
Mac
安装
jdk、Mac
安装
Meven、Mac
安装
nvm
、Mac
安装
Nexus等_
mac
安装
jdk
mac
安装
jdk ...
赞
踩
article
maven
仓
库
汇总_
oschina
maven
库
大全...
http://192.168.0.206:8081/nexus/content/groups/public/http:/...
赞
踩
article
基于
classfinal
对
Java
服务端代码进行
混淆
加密
_
classfinal
-
maven
-plug...
在单模块中,此方案还算简单,但是现在项目一般都是多模块。一个模块依赖多个公共模块。那么使用此方案就比较麻烦,配置复杂,文...
赞
踩
article
idea
+
Maven
+
Git
使用步骤
_
idea
配置
maven
和
git
详情...
接上一篇
Maven
项目新建1. 对于新建的
Maven
项目第一步File–>Settings里面看一下有没有
git
.ext...
赞
踩
article
Maven
&
Git
_
如何将一个
maven
工厂放到
git
管理
...
maven
&
git
_
如何将一个
maven
工厂放到
git
管理
如何将一个
maven
工厂放到
git
管理
...
赞
踩
article
Maven
settings
.
xml
配置
指定本地仓库_
maven
settings
配置
本地仓库...
亲测
Maven
settings
.
xml
配置
指定本地仓库_
maven
settings
配置
本地仓库
maven
setti...
赞
踩
article
IDEA
2024
maven
配置
_查看
idea
自带
maven
...
在每次创建项目的时候,
maven
总是要通过archetype插件来确定项目的模板,一般创建前总是向远程仓库—Darche...
赞
踩
article
maven
——(重要)手动创建,构建
项目
_
mvn
install
:
install
-
file
...
maven
项目
构建说实在就是把日常我们做的工作做成命令,一键执行就行。为什么这么做?idea不是都做完了吗?!!首先id...
赞
踩
article
Maven
settings
.
xml
配置
(指定本地仓库、
阿里
云镜像设置)_
maven
setting...
转载:
Maven
settings
.
xml
配置
(指定本地仓库、
阿里
云镜像设置) 一、
settings
...
赞
踩
article
maven
install
_mvn
install
file...
mvn
install
:
install
-file “-Dfile=(jar包的位置)” “-DgroupId=group...
赞
踩
article
maven
详解...
maven
maven
是一个跨平台的项目管理的工具。隶属于Apache下的一个开源项目。主要服务于Java平台的项目构建、...
赞
踩
article
Maven
之
安装
自定义
jar
到
本地
Maven
仓库中_
jar
maven
配置
到
本地
环境...
Maven
之
安装
自定义
jar
到
本地
Maven
仓库中_
jar
maven
配置
到
本地
环境
jar
maven
配置
到
本地
环境...
赞
踩
article
Java服务
限流
之
Guava
_
guava
maven
...
Google开源的工具包
Guava
具备很多强大的功能,
限流
器就是其中之一。常见的
限流
算法主要有固定窗口、滑动窗口、漏桶、...
赞
踩
article
javaweb
ajax
maven
mybatis
spring
spring
mvc 在项目中有什...
假设我们正在开发一个在线商城的网站,使用JavaWeb技术,我们可以借助Maven来管理项目的依赖库和构建过程,使用AJ...
赞
踩
article
Springboot
版本
+
jdk
版本
+ Maven
版本
的匹配_
jdk
13
搭建springb...
Spring boot
版本
Spring Framework
jdk
版本
maven
版本
1.2.0
版本
之前 6...
赞
踩
article
W2-1:
Maven
引入外部
依赖
——以
GSON
的
使用
为例_
gson
maven
...
本文以
使用
GSON
为例,简单记录了
Maven
引入外部
依赖
的操作过程。_
gson
maven
gson
maven
...
赞
踩
相关标签
运维
java
maven
依赖冲突
spring boot
旅游
intellij-idea
macos
maven2
maven仓库
仓库
中央仓库
开发语言
git
xml