1. 程式人生 > >使用Maven多環境配置打包和部署

使用Maven多環境配置打包和部署

基本每個專案都會有開發環境(本地環境)、開發整合環境、測試環境、預釋出環境、正式環境。
最少也有開發環境(本地環境)、測試環境、生產環境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>