日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

maven 根据P参数值打包动态修改properties文件中值或一定properties

發(fā)布時間:2024/4/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 maven 根据P参数值打包动态修改properties文件中值或一定properties 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


http://www.tuicool.com/articles/Mj2EzqN

由于本人 最近忙著公司事情,昨天沒有寫博客,今天就繼續(xù)寫吧

需求:由于最近開發(fā)clover項目 ,沒有使用spring,更沒有使用任何框架,而使用J2EE的web工程,所以連接ZK和MongoDB、Redis等服務(wù)器需用指定properties文件,

而目前公司又分各套環(huán)境(dev、test、product),所以希望打包的時候 根據(jù)profile id 來動態(tài)使用不同環(huán)境properties文件 或者動態(tài)修改properties參數(shù)值

方法一:使用一套properties配置文件,但具體參數(shù)使用${key}占位符方式打包替換

maven的pom中指定每套環(huán)境的參數(shù)值

我們還要啟動resources的filter過濾器:

按照上述配置后,我們執(zhí)行maven打包操作后:

我們可以看到mongoDBConfig.properties、redisConfig.properties、zkConfig.properties等文件都被替換到指定環(huán)境的參數(shù)了

由于 有些老系統(tǒng)會在項目中的resources下指定各套環(huán)境配置文件,如下圖片:

但是我們打包后 只希望將指定環(huán)境下的*.properties文件都移動到classes下,所以可以考慮使用方法二

方法二:使用maven-antrun-plugin插件方式實現(xiàn)

我們只在打包dev環(huán)境:

我們要指定resources.dir目錄為 src/main/resources/dev

我們增加一個plugin 為maven-antrun-plugin,由于我只要在子工程clover-core下面移動這幾個文件,最終打成一個jar包,所以要把這個plugin代碼放在clover-core下的pom.xml文件,如果把這個plugin放在父工程的pom.xml下那就移動所有的子工程下resources文件

還是貼上代碼吧:

<build> <finalName>clover-core-${clover.version}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <id>compile</id> <phase>compile</phase> <configuration> <tasks> <echo message="********************** copy resources to classpath*************************"/> <echo message="********************** copy ${resources.dir} to classpath*************************"/> <copy todir="target/classes" overwrite="true"> <fileset dir="${resources.dir}"> <include name="*.*"/> <include name="*/*.*"/> </fileset> </copy> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build>

我們執(zhí)行打包后:

我們可以看到clover-core下已經(jīng)將這幾個*.properties移動到classes下了

個人還是比較推薦第一種方式

PS:有的時候 我們想通過動態(tài)打包,生成的子工程的名字是帶各套環(huán)境, 比如:clover-core-dev-1.0.jar

我們在父工程的profile下設(shè)置clover.version

子工程clover-core想最終打包是clover.version指定的環(huán)境+版本號:

<version>${clover.version}</version> ---這個將會打包后deploy中央私庫后最終的version <finalName>clover-core-${clover.version}</finalName> --這個就是子工程clover-core打包最終名字

我們執(zhí)行打包后:

私庫

當(dāng)我們打war包的時候,我們也可以指定依賴模塊的版本號:

我們這里面使用的 profile配置的環(huán)境version,但讓你想自己改成別的版本,你打包后就可以看到某個依賴的jar包就是你指定的版本

我們把clover-core的版本改成dev-1.0

再把clover-core的pom.xml

打包后 我們看下war包中:

但我看下clover-core子工程下的target:

原來是這樣的

maven用的時間倒是很長,但大多時間都是一次配置后,再沒有修改后,然后開發(fā)項目,但有些細節(jié) 最終沒有研究那么明白

文章寫的有點水,希望對您受用,謝謝



===========

maven 如何引用配置文件中變量

http://www.dewen.io/q/7578




總結(jié)

以上是生活随笔為你收集整理的maven 根据P参数值打包动态修改properties文件中值或一定properties的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。