# [Maven2] Globale Properties



## pocketom (23. Nov 2009)

Ich würde gerne ein paar Properties globalisieren. Z.b. [c] <organization> [/c] oder eben diverse [c] <properties> [/c]. Wenn ich den [c] <properties> [/c] Block jedoch von meiner POM in die m2/conf/settings.xml verschiebe dann gibts Ärger... Finde dazu nix, ausser das man wohl die maven.jar extrahieren und dann diverse Files verändern kann wovon ich nicht so viel halte...


----------



## maki (23. Nov 2009)

> . Wenn ich den  <properties> Block jedoch von meiner POM in die m2/conf/settings.xml verschiebe dann gibts Ärger...


Muss sie natürlich ins passende Profil setzen, nicht einfach irgendwo hin


----------



## pocketom (23. Nov 2009)

Ah ok. Mit Profilen hab ich bisher nix gemacht. Wenn ich jetzt ein Profil anlege, gilt das dann automatisch für alle Maven Nutzer wenn ich zugleich activeProfile auf das soeben erstellte setze? Nicht das ich am Ende damit das Gegenteil erreiche von dem was ich wollte


----------



## maki (23. Nov 2009)

Warum nicht mal in der Doku lesen? 
Maven - Introduction to build profiles

Maven2 Profile sind mächtig & wichtig, nix was man mit ein paar Posts in einem Forum besprechen kann, vor allem so ganz ohne Vorbildung


----------



## pocketom (23. Nov 2009)

> Warum nicht mal in der Doku lesen?



weils mal wieder sofort sein muss (cheffe steht quasi hinter mir) und ich in 5 Minuten die "Machbarkeit" im Meeting darlegen soll... §"&$%[..! Die Doku muss bis danach warten...

Ich werde also einfach mal davon ausgehen das klappt.


----------



## pocketom (23. Nov 2009)

Sodele, ein wenig eingelesen und gerade am umsetzen. Bis zu [c]<build>...</build>[/c] bin ich gekommen. Hier gibts Probleme:


```
Error reading settings.xml: Unrecognised tag: 'build' (position: START_TAG seen
...<!--BUILD MANAGEMENT -->\n\t\t\t<build>... @221:11)
  Line:   221
  Column: 11
```

Mein build block sieht eigentlich ganz normal aus:

[xml]

  <profiles>

    <!-- OneIT Production Environment -->
		<profile>			
	    		<id>oneit</id>
...
...
...

<!--BUILD MANAGEMENT -->
			<build>
				<finalName>${artifactId}</finalName>

				<plugins>

					<!-- Maven Compiler Plugin -->
					<plugin>
						<artifactId>maven-compiler-plugin</artifactId>
						<configuration>
							<source>1.6</source>
							<target>1.6</target>
						</configuration>
					</plugin>		

					<!-- Maven Release Plugin (SVN, Project Reports) -->
					<plugin>
						<artifactId>maven-release-plugin</artifactId>
						<version>2.0-beta-9</version>
						<configuration>		
							<tagBase>${svn-basedir}/${artifactId}/tags</tagBase>		
						</configuration>
					</plugin>			

				</plugins>
			</build>
...
...
...
		<profile>
[/xml]

Was hab ich falsch gemacht???


EDIT: Laut dem Sonatype Maven Book sollte build erlaubt sein, aber nur in einem [c]<profile>[/c] in einer lokalen POM.xml. Ich frage mich warum ich das nicht global festlegen kann :-( Hier sollen z.B. alle Projekte mit JDK 1.6 erstellt werden. Es gibt damit immer wieder Probleme weil irgendein Nasenbär meint für sich 1.4 oder sonst was einstellen zu müssen. Das will ich global festzementieren und es soll nicht überschreibbar sein. Diskutieren will ich darüber auch nicht und permanent kontrollieren gehen schon gleich garnicht.

EDIT2: Klasse, [c]<reporting>[/c] geht auch nicht. Nun müssen wir also auch diesen Megablock weiterhin redundant in allen POMs halten. Besonders freue ich mich immer wenn der Nasenbär dort seine Spielwiese entdeckt und anfängt an der Config rumzuspielen anstatt die Arbeit zu tun die man ihm aufgetragen hat....

EDIT3: [c]<distributionManagement>[/c] ist natrülich auch nicht drin. Jeder Developer darf also selbst entscheiden wo seine Releases landen. Na toll!

Das ist so ja vollkommen nutzlos. Gibts hier irgendeine Abhilfe solche wichtigen globalen Parameter auch wirklich global zu steuern???


----------

