5、Maven-構建配置文件
阿新 • • 發佈:2017-09-11
什麽是 arch 目標 posit fig cat ner 變量 any
來自為知筆記(Wiz)
- 什麽是構建配置文件?
- 配置文件是一組配置的集合,用來設置或者覆蓋Maven構建的默認設置,
- 使用配置文件可以為不同的環境定制構建過程,例如Producation和Development環境。
- Profile在pom.xml文件中使用activeProfiles/profiles元素定義,並且可以用很多的方式觸發,
- Profile在構建的時候修改POM文件,並且為變量設置不同的目標環境(例如:在開發、測試、和產品環境中的數據庫服務器路徑)
- Profile的類型
- profile主要有三種類型
- Profile激活
- maven的profile可以通過一下幾種方式進行激活
- 顯示使用命令控制臺
- 通過maven設置
- 基於環境變量(用戶/系統變量)
- 操作系統配置(Windows family)
- 現存/殘缺 文件
- profile激活示例
- 假定工程目錄像下面這樣
- 現在在src/main/resources目錄下有三個環境配置文件
- 顯示Profile激活
- 接下來的例子當中,通過將attach maven-antrun-plugin:run目標添加到測試階段中,這樣可以在我們的不同的Profile中輸出文本信息。
- 我們通過使用pom.xml來定義不同的Profile,並在命令行窗口中使用maven命令進行激活Profile
- 假定有一下的文件
- 假定有以上文件,在控制臺跳轉到文件所在路徑,然後執行一下命令
- Maven 將會顯示並且test Profile的結果
- 現在我們練習一下可以按照接下來的步驟這麽做
- 在pom.xml文件的profiles元素中添加一個profile元素(拷貝已有的profile元素並粘貼到profiles元素的結尾)
- 將此profile元素的id從test改為normal
- 將任務部分修改為echo env.properties以及copy env.properties到目標目錄
- 再次重復以上三個步驟,修改id為prod,修改task部分為env.prod.properties
- 全部就是這些了,現在有了三個構建配置文件(normal/test/prod)
- 在命令行窗口,跳轉到pom.xml所在目錄,執行以下的mvn命令,使用-P選項來指定profile的名稱
- 檢查構建的輸出有什麽不同!
- 通過Maven設置激活Profile
- 打開maven的setting.xml文件,該文件可以在%USER_HOME%/.m2目錄下面找到,
- 如果setting.xml不存在,則需要創建一個
- 在下面的例子當中,使用activeProfiles節點添加test配置作為激活Profile
- 命令行控制臺,跳轉到pom.xml文件所在的目錄,並且執行以下的mvn命令,不要使用-P選項指定Profile的名稱
- Maven將顯示被激活的test Profile的結果
- 通過環境激活Profile
- 現在從maven的setting.xml文件中刪除激活的Profile,並且更新pom.xml中的test Profile,將下面的內容添加到profile元素的activation元素中
- 當系統屬性env被設置成“test”的時候,test配置將會被觸發,創建一個環境變量“env”並設置他的值為“test”
- 打開控制臺窗口,跳轉到pom.xml文件所在的目錄,並且執行一下的mvn命令
- 通過操作系統激活Profile
- activation元素包含下面的操作系統的信息
- 當系統為WindowsXP的時候,test Profile文件會觸發
- 現在控制臺跳轉到pom.xml所在的目錄,並且執行以下的mvn命令。不要使用-P選項指定profile 的名稱,Maven將顯示被激活的test Profile的結果
<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.companyname.projectgroup</groupId> <artifactId>project</artifactId> <version>1.0</version> <profiles> <profile> <id>test</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.1</version> <executions> <execution> <phase>test</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>Using env.test.properties</echo> <copy file="src/main/resources/env.test.propertiestofile ="${project.build.outputDirectory}/env.properties"/> </tasks> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>
mvn test -Ptest
mvn test -Pnormal
mvn test -Pprod
<settings 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/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>maven.dev.snaponglobal.com</id>
<name>Internal Artifactory Maven repository</name>
<url>http://repo1.maven.org/maven2/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<activeProfiles>
<activeProfile>test</activeProfile>
</activeProfiles>
</settings>
mvn test
<profile>
<id>test</id>
<activation>
<property>
<name>env</name>
<value>test</value>
</property>
</activation>
</profile>
mvn test
<profile>
<id>test</id>
<activation>
<os>
<name>Windows XP</name>
<family>Windows</family>
<arch>x86</arch>
<version>5.1.2600</version>
</os>
</activation>
</profile>
mvn test
來自為知筆記(Wiz)
5、Maven-構建配置文件