# [Maven] Profil funktioniert bei package aber nicht bei release (help:active-profiles -> aktiv)



## dermoritz (3. Jan 2012)

Ich habe ein sehr eigenartiges Problem:
Ich hab ein Multimodulprojet 

parent
-- pom
-- Integrationstests
----pom
-- Hauptmodul
----pom

Im Hauptmodul gibt es einige Profile für verschiedene Umgebungen. Die Aktivierung klappt per -PprofileID auch wunderbar. Das Problem ist, dass sie nicht bei "mvn releaserepare -PprofileID" funktionieren bei "mvn package -PprofileID" funktionieren sie. Das heißt in ersterem Fall werden z.b. die Default property-Werte ersetzt und die default-Plugin-Einstellungen verwendet. bei Package klappt es wunderbar.

In beiden Fällen zeigt mir help:active-profiles das gewälte profil für das hauptmodul als aktive an! Was ist da los?

Danke im Voraus


----------



## kama (3. Jan 2012)

Hi,

das Problem liegt daran, dass während der releaserepare Phase als auch später bei releaseerform Phase ein weiteres Maven aufgerufen wird (invoker!), dass dann den Parameter "-PProfileId" nicht mit bekommt....

Dazu gibt es die Möglichkeit Argumente mit zugeben. Das bedeutet, dass Du in der POM das Maven Release Plugin entsprechend angeben musst und ensprechend konfigurieren musst...
Bei Dir wäre es dann auch noch sinnvoll den paramter "autoVersionSubmodules" mit anzugeben, damit alle Sub-Module auch die Versionsnummer übernehmen....

Gruß
Karl Heinz Marbaise


----------



## dermoritz (3. Jan 2012)

ich habe folgendes in zwischenzeit versucht:
<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<configuration>
					<arguments>-Prelease</arguments>
					<releaseProfiles>release</releaseProfiles>
				</configuration>
			</plugin>
		</plugins>
	</build>

Das funktioniert leider auch nicht(habe es auch einzeln mit den beiden Einstellungen versucht). Kannt du bitte konkret schreiben wie ich das "release"_Profil aktiviere?

Per Kommandozeile hab ich es nun übrigens geschafft:

mvn -Prelease releaserepare

Also -Prelease als erstes Argument funktioniert! (IRgendwie ist das ungünstig, dass die Parameterreihenfolge wichtig ist)


----------



## kama (3. Jan 2012)

Hi,

Welche Version von maven-release-plugin nutzt Du denn ?  (2.2.2 ?)

BTW: Welche Maven Version nutzt Du eigentlich ? 3.0.3 ?

habe nochmal nachgeschaut....

So releaseProfiles bezieht sich wohl nur auf das deployment ? (war mir auch nicht bewußt...)..

Das Folgenden hat mir geholfen:...


```
mvn -Darguments="-Dgpg.passphrase=xxxx" release:perform
```
Das sollte aber mit dem arguments in der Konfiguration auch klappen...

Gruß
Karl Heinz Marbaise


----------



## dermoritz (3. Jan 2012)

maven 3 und release 2.2.2 - maven könnte ich ja mal updaten?!

also wie man das release-Profile per pom im release plugin setzen kann weißt du auch nicht? Und wie gesagt wenn ich das -P Argument nach vorne hole (analog zu vielen Beispielen im Netz) funktioniert es wunderbar.


----------

