使用Maven多環境配置打包和部署
阿新 • • 發佈:2018-12-08
基本每個專案都會有開發環境(本地環境)、開發整合環境、測試環境、預釋出環境、正式環境。
最少也有開發環境(本地環境)、測試環境、生產環境3個環境,每個環境的配置是不一樣的,如果每次打包都手動修改配置檔案,工作量大且容易出錯。
所以這個時候就可以考慮使用maven的profiles來實現多環境配置的打包。
<profiles>
<profile>
<!-- 本地開發環境 -->
<id>dev</id>
<properties>
<profiles.active >development</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 測試環境 -->
<id>test</id>
<properties >
<profiles.active>test</profiles.active>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<!-- 生產環境 -->
<id>prd</id >
<properties>
<profiles.active>production</profiles.active>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>
<build>
<finalName>hhly-common-${project.version}-${profiles.active}</finalName> <!--最終生成的檔名-->
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 資源根目錄排除各環境的配置,使用單獨的資源目錄來指定 -->
<excludes>
<exclude>test/*</exclude>
<exclude>production/*</exclude>
<exclude>development/*</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/${profiles.active}</directory>
</resource>
</resources>
<plugins>
<plugin>
<!-- 編譯外掛 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<!--<outputDirectory>/target/classes</outputDirectory>
<testOutputDirectory>/target/test-classes</testOutputDirectory>-->
</build>
如上,預設開發環境的profile是active的,也就是你執行mvn:compile,mvn:install,mvn:package等都是使用的開發環境的配置檔案。
如果要打其他環境,比如測試環境的包,可以這樣mvn package -P test.
注意:每次打包前建議先執行clean,否則會使用之前打包的配置檔案。mvn clean package -P test.
那如果要自動部署到tomcat,可以增加一個plugin.
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<charset>utf-8</charset>
<url>${deploy.url}</url>
<server>tomcat</server>
<path>${webname}</path>
<username>admin</username>
<password>tomcat</password>
<update>true</update>
</configuration>
</plugin>
profile這樣配置:
<profile>
<!-- 本地開發環境 -->
<id>development</id>
<properties>
<profiles.active>development</profiles.active>
<deploy.url>http://localhost:8080/manager/text</deploy.url>
<webname>/basketball_manage</webname>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>