中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Maven中對profile進行配置

發布時間:2021-01-25 15:26:05 來源:億速云 閱讀:392 作者:Leah 欄目:開發技術

如何在Maven中對profile進行配置?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

針對不同環境的 profile 的配置

為了體現不同環境的不同構建,需要配置好不同環境的 profile,代碼如下:

<profiles>
  <profile>
    <id>dev_evn</id>
    <properties>
      <db.driver>com.mysql.jdbc.Driver</db.driver>
      <db.url>jdbc:mysql://localhost:3306/test</db.url>
      <db.username>root</db.username>
      <db.password>root</db.password>
    </properties>
  </profile>
  <profile>
    <id>test_evn</id>
    <properties>
      <db.driver>com.mysql.jdbc.Driver</db.driver>
      <db.url>jdbc:mysql://localhost:3306/test_db</db.url>
      <db.username>root</db.username>
      <db.password>root</db.password>
    </properties>
  </profile>
</profiles>

在兩個不同的 profile 中,配置了同樣的屬性,不一樣的值。按照前面的介紹,在開發時可以用 mvn 命令后面添加“-Pdev_evn”激活“dev_evn profile”。

激活 profile 配置

在 Maven 中,可以選用如下的方式激活 profile。
1. 命令行激活

用戶可以在 mvn 命令行中添加參數“-P”,指定要激活的 profile 的 id。如果一次要激活多個 profile,可以用逗號分開一起激活。例如:

mvn clean install -Pdev_env,test_evn

這個命令就同時激活了 id 為“dev_evn”和“test_evn”的兩個 profile。

2. Settings 文件顯示激活

如果希望某個 profile 默認一直處于激活狀態,可以在 settings.xml 中配置 activeProfiles 元素,指定某個 profile 為默認激活狀態,樣例配置代碼如下:

<settings>
  ...
  <activeProfiles>
    <activeProfile>dev_evn</activeProfile>
  </activeProfiles>
  ...
</settings>

3. 系統屬性激活

可以配置當某個系統屬性存在時激活 profile,代碼如下:

<profiles>
  <profile>
    ...
    <activation>
      <property>
        <name>profileProperty</name>
      </property>
    </activation>
  </profile>
</profiles>

甚至還可以進一步配置某個屬性的值是什么時候激活,例如:

<profiles>
  <profile>
    ...
    <activation>
      <property>
        <name>profileProperty</name>
        <value>dev</value>
      </property>
    </activation>
  </profile>
</profiles>

這樣就可以在 mvn 中用“-D”參數來指定激活,例如:
Mvn clean install -DprofileProperty=dev

表示激活屬性名稱為 profileProperty,值為 dev 的 profile。

實際上這也是一種命令激活 profile 的方法,只是用的是“-D”參數指定激活的屬性和值,而前面的是用的“-P”參數指定激活的 profile 的 id 而已。

4. 操作系統環境激活

用戶可以通過配置指定不同操作系統的信息,實現不同操作系統做不同的構建。例如:

<profiles>
  <profile>
    <activation>
      <os>
        <name>Window XP</name>
        <family>Windows</family>
        <arch>x86</arch>
        <version>5.1.2600</version>
      </os>
    </activation>
  </profile>
</profiles>

family 的值是 Windows、UNIX 或 Mac。name 為操作系統名稱。arch為操作系統的架構。version為操作系統的版本。具體的值可以通過查看環境中的系統屬性“os.name”“os.arch”和“os.version”獲取。

5. 文件存在與否激活

當然,也可以通過配置判斷某個文件存在與否來決定是否激活 profile,樣例配置代碼如下:

<profiles>
  <profile>
    <activation>
      <file>
        <missing>t1.properties</missing>
        <exists>t2.properties</exists>
      </file>
    </activation>
  </profile>
</profiles>

6. 默認激活

最后,還可以配置一個默認的激活 profile,例如:

<profiles>
  <profile>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
  </profile>
</profiles>

需要注意的是,如果 pom 中有任何一個 profile 通過其他方式被激活的話,所有配置成默認激活的 profile 都會自動失效。 可以使用如下命令查看當前激活的 profile。

Mvn help:active-profiles

也可以使用如下命令查看所有的 profile。

Mvn help:all-profiles

profile 的種類

前面介紹了 profile 的意義和激活方式。那么在 Maven 中,有哪些 profile?如何配置呢?

根據 profile 配置的位置不同,可以將 profile 分成如下幾種。
1)pom.xml
pom.xml 中聲明的 profile 只對當前項目有效。
2)用戶 settings.xml
在用戶目錄下的“.m2/settings.xml”中的 profile,對本機上的該用戶的所有 Maven 項目有效。
3)全局 settings.xml
在 Maven 安裝目錄下 conf/settings.xml 中配置的 profile,對本機上所有項目都有效。

為了不影響其他用戶且方便升級 Maven,一般配置自己的 settings.xml,不要輕易修改全局的 settings.xml。同樣的道理,一般不需要修改全局 settings.xml 中的 profile。

不同類型的 profile 中可以聲明的 pom 元素是不一樣的,pom.xml 中的 profile 能夠隨同 pom.xml 一起提交到代碼倉庫中,被 Maven 安裝到本地倉庫里面,并且能被部署到遠程 Maven 倉庫中。也就是說,可以保證 profile 伴隨特定的 pom.xml 一起存在。所以它可以修改或者添加很多 pom 元素,例如:

<project>
  <repositories></repositories>
  <pluginRepositories></pluginRepositories>
  <dependencies></dependencies>
  <dependencyManagement></dependencyManagement>
  <modules></modules>
  <properties></properties>
  <reporting></reporting>
  <build>
    <plugins></plugins>
    <defaultGoal></defaultGoal>
    <resources></resources>
    <testResources></testResources>
    <finalName></finalName>
  </build>
</project>

如上代碼所示,在 pom 中的 profile 元素比較多,可以添加或修改插件配置、項目資源目錄、測試資源目錄配置和項目構建的默認名稱等。

除了 pom 中的 profile 外,其他外部的 profile 可以配置的元素相對就少些,因為那些外部 profile 無法保證同項目中的 pom.xml 一起發布。

如果在外部 profile 中配置了項目依賴,開發用戶可以在本地編譯,但是因為依賴配置沒有隨同 pom.xml 一起發布部署到倉庫中,別的用戶下載了該項目后,就會因為缺少依賴而失敗。

為了避免這樣的不一致情況,很多在 pom 的 profile 可以出現的元素不允許在外部 profile 中出現。

在外部 profile 可以聲明的元素如下:

<project>
  <repositories></repositories>
  <pluginRepositories></pluginRepositories>
  <properties></properties>
</project>

這些外部 profile 元素不足以影響項目的正常構建,只會影響項目的倉庫和 Maven 屬性。

看完上述內容,你們掌握如何在Maven中對profile進行配置的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥芬河市| 英德市| 卓尼县| 南丹县| 哈尔滨市| 沙雅县| 蕉岭县| 兴文县| 长顺县| 南通市| 杂多县| 双流县| 永清县| 宝坻区| 上高县| 中超| 汕头市| 田林县| 安阳市| 施秉县| 丹江口市| 满洲里市| 同江市| 华宁县| 武清区| 富裕县| 沈阳市| 友谊县| 醴陵市| 黄大仙区| 溧水县| 丹江口市| 自治县| 客服| 宜昌市| 抚州市| 闽侯县| 汕尾市| 东乌珠穆沁旗| 林州市| 界首市|