使用maven profile 實現不同環境打包
maven 的build 配置可以在兩處出現:
工程執行環境有研發,測試和生產,不同的執行環境配置不同。 maven可根據不同的環境打包不同的配置檔案。<span style="font-size:14px;"><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"> <!-- 專案級別的構建,基礎配置 --> <build>...</build> <profiles> <profile> <!-- 特殊的構建 --> <build>...</build> </profile> </profiles> </project></span>
有兩種方式:
1)、打包時指定檔案目錄,使用指定的資料夾下的配置檔案。
2)、使用佔位符,點位符使用指定的profile 中的properties 的key對應值替換,這樣不同環境就可以載入不同的配置檔案。
下面分別說明這兩種情況。
1、指定打包過慮的檔案目錄
專案分為多個環境:研發(dev),測試(test),生產(product),演示(demo)。配置檔案目錄如下:
src/main/resources 中的配置檔案是在開發時使用的。
src/main/filters 資料夾是不同環境的配置檔案。
說明:不同環境的配置檔案只是各環境特定的配置,公共可用的配置都是在src/main/resources 資料夾中,如:common.properties
pom.xml 配置說明:
打包命令:<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"> <modelVersion>4.0.0</modelVersion> <groupId>com.masz.test</groupId> <artifactId>package-test</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <profiles> <profile> <id>qa</id> <properties> <package.environment>qa</package.environment> </properties> <!-- 配置預設啟用(打包時不指定 -P 引數使用此打包) --> <activation> <activeByDefault>true</activeByDefault> </activation> <build> <!-- 表示釋出時要打包的資原始檔,需要指明,這樣才會打到包中去 --> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*</include> </includes> <excludes> <!-- 不包含的檔案(${package.environment})下面的檔案 --> <exclude>${package.environment}/*</exclude> </excludes> <filtering>true</filtering> <!-- 是否使用過濾器 --> </resource> <resource> <directory>src/main/filters/${package.environment}</directory> <includes> <include>**.*</include> </includes> <filtering>true</filtering> </resource> </resources> <finalName>${project.artifactId}</finalName><!-- 打包後的檔名 --> </build> </profile> </profiles> <!-- 全域性build 配置 --> <build> <sourceDirectory>src/main/java</sourceDirectory> <outputDirectory>target/classes</outputDirectory> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.3</version> <configuration> <includes> <include>**/*Test*.java</include> </includes> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> </project>
mvn clean package -Pqa -Dmaven.test.skip=true
-P 引數指定使用 profile 配置id 為qa 的build 引數打包。()
專案程式碼:http://download.csdn.net/detail/convict_eva/9638939
2、使用佔位符
專案如下:
applicationContext.xml 配置如下:
<bean id="configurationProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath*:${env.props.file}</value><!-- 使用點位符 -->
<value>classpath*:common.properties</value>
</list>
</property>
</bean>
pom.xml 配置:
<!-- 指定profile 對應的屬性 -->
<profiles>
<profile>
<id>demo</id>
<properties>
<env.props.file>filters/demo/application.properties</env.props.file>
</properties>
</profile>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env.props.file>filters/dev/application.properties</env.props.file>
</properties>
</profile>
<profile>
<id>product</id>
<properties>
<env.props.file>filters/product/application.properties</env.props.file>
</properties>
</profile>
<profile>
<id>qa</id>
<properties>
<env.props.file>filters/qa/application.properties</env.props.file>
</properties>
</profile>
</profiles>
<!-- 全域性build 配置 -->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
打包命令:
mvn clean package -Pqa -Dmaven.test.skip=true
打包後解壓,佔位符已經被替換。
注:配置檔案可以單獨為一個工程,專案依賴這個工程即可。這樣也方便管理
專案程式碼:http://download.csdn.net/detail/convict_eva/9638941
相關推薦
使用maven profile 實現不同環境打包
maven 的build 配置可以在兩處出現: <span style="font-size:14px;"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww
【轉】maven profile實現多環境打包
作為一名程式設計師,在開發的過程中,經常需要面對不同的執行環境(開發環境、測試環境、生產環境、內網環境、外網環境等等),在不同的環境中,相關的配置一般不一樣,比如資料來源配置、日誌檔案配置、以及一些軟體執行過程中的基本配置。每次在不同環境部署程式時,都需要修改相應的配置檔案,使之完成環境的配置。這麼
maven profile實現多環境打包
專案開發需要有多個環境,一般為開發,測試,預發,正式4個環境,通過maven可以實現按不同環境進行打包部署,命令為: mvn package -P dev 其中“dev“為環境的變數id, 可以自己定義, 我定義的名稱為:dev,sit,uat,prod , 具體在
使用maven profile實現多環境配置相關打包
本地 ces 軟件測試 測試 project oca rect fault uil 項目開發需要有多個環境,一般為開發,測試,預發,正式4個環境,通過maven可以實現按不同環境進行打包部署,命令為: mvn package -P dev 在eclipse中可以右擊選項r
maven的profile構建不同環境打包
1.首先建立maven工程(略),專案結構如下 2.pom檔案配置 2.1 新增<profiles標籤>,在<profiles>分別定義各個<profile>用來配置開發,測試以及生產的全域性變數,程式碼如下: <p
一點一點學maven(13)--利用maven的filter和profile實現不同環境使用不同的配製
在我們平常的java開發中,會經常使用到很多配製檔案(xxx.properties,xxx.xml),而當我們在本地開發(dev),測試環境測試(test),線上生產使用(product)時,需要不停的去修改這些配製檔案,次數一多,相當麻煩。現在,利用maven
利用maven的resources、filter和profile實現不同環境使用不同配置檔案
在我們平常的java開發中,會經常使用到很多配製檔案(xxx.properties,xxx.xml),而當我們在本地開發(dev),測試環境測試(test),線上生產使用(product)時,需要不停的去修改這些配製檔案,次數一多,相當麻煩。現在,利用maven的filter和profile功能,我們可實現在
使用maven profile 構建不同環境引用不同的值
技術分享 resource filters htm rect file .com enc fig 需要做的配置如下 <profiles> <profile> <id>dev</id>
Spring Boot+Profile實現不同環境讀取不同配置
images alt quest color ive 作用 讀取 ron 總結 文件結構如下: 但是官方推薦放在config文件夾下。 作用: 不同環境的配置設置一個配置文件,例如:dev環境下的配置配置在application-dev.properties中。p
maven profile實現多環境配置
每次專案部署上線都需要手動去修改配置檔案(比如資料庫配置)然後才能打包,很不方便,可以根據以下教程用maven的profile 實現多環境的配置。 以資料庫的配置為例,在src/main/resources 下新建三個資料夾,分別叫做dev,online,test,分別對應
maven項目之Profile---不同環境打包不同配置
程序員 不同的 fff payment 每次 pom.xml 目錄 麻煩 項目 作為一名程序員,在開發的過程中,經常需要面對不同的運行環境(開發環境、測試環境、生產環境、內網環境、外網環境等等),在不同的環境中,相關的配置一般不一樣,比如數據源配置、日誌文件配置、以及一些軟
Spring boot 使用profile完成不同環境的maven打包功能
我們在日常開發工作中通常會根據不同的專案執行環境,新增不同的配置檔案,例如 開發環境,測試環境,生產環境等,每次手工的修改配置檔案太過於繁瑣。通過maven打包時確定需要使用的配置檔案可以很好的解決這個問題。 下面看一下程式碼目錄 application-dev.prop
maven根據不同環境打包不同文件
pretty version config XML 接口 ins efault com 配置文件 一, 我們平時在項目開發過程中會根據不同的環境打包不同的文件。如數據庫連接文件,三方接口文件,日誌文件等等,他們在開發,測試和線上環境的配置不一樣,部署測試環境或線上環境都要改
MAVEN利用Profile構建不同環境的部署包
con 都在 lte res 我們 ins ons plugins -i 通常,項目要在多個環境部署,每種環境都有各自的資源配置參數,比如:數據庫連接、Redis服務器地址等等。 所以,各個環境打包出來的資源是不一樣的,如果手動的修改,費時費力。我們可以利用MAVAN的pr
通過maven profile實現多套環境配置
maven profile的使用 作為一名程式設計師,在開發的過程中,經常需要面對不同的執行環境(開發環境、測試環境、生產環境、內網環境、外網環境等等),在不同的環境中,相關的配置一般不一樣,比如資料來源配置、日誌檔案配置、以及一些軟體執行過程中的基本配置。每次在不同環境部署程式時,都需要修改相
Maven Profile 與 Spring Profile 管理多環境打包
一般開發團隊會有多個部署環境,如 dev 環境用於開發自測,QA 環境讓測試團隊測試, Production 環境作為線上環境。通常不同環境的配置不同,我們希望打包時的人力消耗最少。 #Spring Boot Profile Spring Boot Profile 有許多的功能,這裡只說管理配置的內容。Spr
Spring Boot專案使用maven-assembly-plugin根據不同環境打包成tar.gz或者zip
spring-boot-assembly 在spring boot專案中使用maven profiles和maven assembly外掛根據不同環境打包成tar.gz或者zip 將spring boot專案中的配置檔案提取到外部config目錄中 將spring boot專案中的
Spring Boot項目使用maven-assembly-plugin根據不同環境打包成tar.gz或者zip
6.0 content arc 項目啟動 index final ica str 4.0 spring-boot-assembly 在spring boot項目中使用maven profiles和maven assembly插件根據不同環境打包成tar.gz或者zip
SpringBoot專案使用maven-assembly-plugin根據不同環境打包成tar.gz
spring-boot-assembly 在spring boot專案中使用maven profiles和maven assembly外掛根據不同環境打包成tar.gz或者zip 將spring boot專案中的配置檔案提取到外部config目錄中 將spring boot專案中的
SpringBoot項目使用maven-assembly-plugin根據不同環境打包成tar.gz
外部 releases sem || second follow environ readme.md http spring-boot-assembly 在spring boot項目中使用maven profiles和maven assembly插件根據不同環境打包成t