2012-04-03 43 views
8

我無法找到解決方案來激活release:preparerelease:perform(兩個)目標上的一些Maven配置文件。事情是這樣的:這兩個版本的配置文件激活:準備和發佈:執行

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.2.1</version> 
    <configuration> 
    <useReleaseProfile>false</useReleaseProfile> 
    <goals>deploy</goals> 
    <arguments>-Pmy-release</arguments> 
    </configuration> 
</plugin> 

是行不通的。我知道releaseProfiles設置僅在release:perform期間有效,所以我只是儘管arguments設置正是我想要的,但my-profile配置文件在執行期間未處於活動狀態。難道我做錯了什麼?

回答

5

這看起來像一個重複的問題。請看看這個問題,它有一個答案。 maven release plugin ignores releaseProfile

基本上釋放插件的2.2.1版本增加了一個releaseProfiles參數,將允許您定義配置文件發佈期間啓用。

http://maven.apache.org/plugins/maven-release-plugin/examples/perform-release.html

不幸的是,它看起來像有將禁止它做你想要什麼錯誤......

編輯,我在這種情況下,已經使用

的一件事是不使用-P參數,而是使用-Denv=release通過環境設置觸發配置文件。然後在POM中,我根據env的值激活了配置文件。這一直對我有效。

+2

感謝您的回答,@ nwinkler。 'releaseProfiles'參數僅與'release:perform'目標相關,所以在'release:prepare'時它不起作用。而且,你是對的,它的行爲無論如何都很奇怪。使用'-Dmy-release'變量的提示實際上是我當前的解決方法。我沒有提到它直接提出我的問題,也沒有提出任何思路。但似乎這是目前唯一的(或至少是最好的)做法。我已經嘗試過'maven-release-plugin'的'2.3-SNAPSHOT'版本,並且stil無法正常工作。傷心。 – 2012-04-04 11:17:55

4

因爲Maven發佈插件啓動額外的實例,你必須指定其他參數。對於你區分

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
     <arguments>${myReleaseArgs}</arguments> 
    </configuration> 
</plugin> 

和執行

mvn release:prepare release:perform -DmyReleaseArgs="-Pmy-release -DskipTests=true" -Pmy-release -DskipTests=true 

和是的,它必須被複制。

4

-Darguments =「 - PmyProfile」似乎可以勝任。

1

它工作在詹金斯通過激活天寒兩個版本:編制和發行:通過設置這兩個屬性

<build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-release-plugin</artifactId> 
     <version>2.5.1</version> 
     <configuration> 
     <releaseProfiles>myprofile</releaseProfiles> 
     <arguments>-Pmyprofile</arguments> 
     </configuration> 
    </plugin> 
    </plugins> 
</build > 

即使上面的偉大工程進行中,我發現使用的文件激活的配置文件更加有用。 「主」配置文件中的舊概念引發了一個問題,因爲我在我父母的配置文件中有該配置文件。這意味着,它在任何一個模塊中都會被激活,是任意的。

爲了解決這個問題,我在配置文件中使用了文件激活方法。它工作得更好,並且作爲獎勵,它簡化了Jenkins的發佈。在Eclipse中,在命令行中,在Jenkins中,無處不在,maven檢測到該文件,並且maven-release-plugin無需配置。此外,該配置文件僅在正確的模塊中才有效。

相關問題