java開發中如何構建maven的不同環境設置

java開發中如何構建maven的不同環境設置

工具/原料

maven
eclipse

方法/步驟

在實際的項目開發過程之中肯定你自己一定會有一個你自己的開發環境,那麼當整個組的項目編寫完成之後一定會有一個內部的測試環境,等真正的項目上線之後那麼也一定會有一套線上的配置環境。從實際的項目的開發基本環境配置一般都會有三類。例如:以資料庫的連接為例,一般進行框架開發的時候(SSM),那麼一般都需要建立一些的*.properties文件以保存相關的環境,於是現在針對於這樣的配置文件,那麼就有可能會分為三個:

dev(開發者)環境,資料庫的連接地址為192.168.1.101:3306/dev;

beta(綜合測試環境),資料庫的連接地址為192.168.1.250:3308/beta;

product(上線環境),資料庫的連接地址為10.5.6.780:3308/product;

那麼一般情況下都會準備出三套配置文件,而後在將項目打包為*.war文件之後希望可以根據不同的環境選擇不同的屬性(*.properties)文件。所以這樣的配置就稱為構建配置,而幸運的是Maven支持這樣的動態選擇的打包操作。

1、建立一個保存所有配置文件的源目錄:src/main/profile。

在此目錄之中分別創建有三個子目錄:

1、dev:保存所有開發的相關環境資源配置;

2、beta:保存所有測試的相關配置;

3、product:保存所有的線上環境的資源配置。

為了方便觀察,在每一個文件夾下都需要有一個conf子文件夾,保存有相應的資源文件項。

此時已經提供有三組不同的開發環境的配置項,當然,整體的配置要想生效一定是需要在pom.xml文件進行相關的定義才可以的。遺憾的是這個時候並不能夠進行打包的控制,還需要將profiles中的其中一個子目錄設置為源目錄,本次將dev的目錄設置為原始碼目錄。

一旦要接觸到框架開發,那麼會面臨一個新的問題,就是開發框架之中需要編寫大量的*.xml配置文件。

在src/main/resources目錄下建議一個config的子目錄,而後在這個子目錄下面分別建立三個子目錄:spring,shiro,mybatis,分別保存不同框架的配置文件;

如果需要這些配置文件起作用,那麼就需要修改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/maven-v4_0_0.xsd">

<parent>

<groupId>com.gwolf</groupId>

<artifactId>base</artifactId>

<version>0.0.1-SNAPSHOT</version>

</parent>

<modelVersion>4.0.0</modelVersion>

<artifactId>crm</artifactId>

<packaging>war</packaging>

<name>crm Maven Webapp</name>

<url>http://maven.apache.org</url>

<dependencies>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>${junit.version}</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<scope>provided</scope>

</dependency>

</dependencies>

<properties>

<!-- 將所有資源文件的配置路徑作為屬性出現 -->

<profiles.dir>src/main/profiles</profiles.dir>

<resources.dir>src/main/resouces</resources.dir>

</properties>

<profiles>

<!-- 明確的描述出要使用的不同環境的不同配置文件 -->

<profile>

<id>dev</id><!-- 明確的描述出本配置文件的編號,一般會與文件目錄重名 -->

<properties>

<profile.dir>${profiles.dir}/dev</profile.dir>

</properties>

<activation>

<activeByDefault>true</activeByDefault>

</activation>

</profile>

<!-- 明確的描述出要使用的不同環境的不同配置文件 -->

<profile>

<id>beta</id><!-- 明確的描述出本配置文件的編號,一般會與文件目錄重名 -->

<properties>

<profile.dir>${profiles.dir}/beta</profile.dir>

</properties>

<activation>

<activeByDefault>false</activeByDefault>

</activation>

</profile>

<!-- 明確的描述出要使用的不同環境的不同配置文件 -->

<profile>

<id>product</id><!-- 明確的描述出本配置文件的編號,一般會與文件目錄重名 -->

<properties>

<profile.dir>${profiles.dir}/product</profile.dir>

</properties>

<activation>

<activeByDefault>false</activeByDefault>

</activation>

</profile>

</profiles>

<build>

<finalName>crm</finalName>

<defaultGoal>package</defaultGoal> <!-- 在打包的時候進行的使用 -->

<resources> <!-- 可以理解為資源文件是否輸出的配置 -->

<resource>

<directory>${resources.dir}</directory>

<filtering>false</filtering>

</resource>

<resource>

<directory>${profile.dir}</directory>

<filtering>false</filtering>

</resource>

</resources>

</build>

</project>

配置完成之後對項目進行更新,隨後為其進行打包的操作處理;

如果以後要更換其他的配置項,那麼最簡單的做法是直接使用profile的名字。

可以通過不同的profile來實現不同環境的開發包的打包處理操作。

在進行資源配置的時候還可以設置必須包含的內容以及排除的內容。

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場