Konfiguracja mavena poszała won z pom.xml

Zazwyczaj gdy pracujemy z kilkoma projektami to dość szybko okazuje się, że używamy tych samych ustawień kodowania, katalogów z dodatkami czy też ustawień specyficznych dla naszego lokalnego środowiska jak ścieżki do serwerów, nazwy użytkownika, hasła.
Okazuje się, że o ile co do zasady konfigurację serwera można przynajmniej częściowo wyprowadzić poza pom.xml to już konfiguracja środowiska nie jest taka fajna. Co do zasady są też wyjątki. Glassfish-maven-plugin na przykład nie daje się skonfigurować tak by działać ze standardowymi ustawieniami pliku settings.xml w zakresie serwera i wymaga by… podać hasło otwartym tekstem w pom.xml.
Kolejnym powodem do podjęcia odpowiednich kroków jest różnorakość środowisk, na których pracują programiści. W pracy robię na winxp w domu na ubuntu. Niektóre projekty ciągnę na firmowym laptopie w celach prezentacyjnych. Ciężko jednak trzymać w ramach profili wiele ustawień specyficznych dla poszczególnych komputerów. Dlatego też warto wszelkie tego typu ustawienia przenieść do pliku settings.xml
U mnie wygląda on tak:

Listing 1. Skrót z settings.xml

<settings>
	<proxies></proxies>
	<servers></servers>
	<mirrors></mirrors>
	<profiles>
		<profile>
			<id>gwt</id>
			<repositories>
				<repository>
					<id>gwt-maven</id>
					<url>http://gwt-maven.googlecode.com/svn/trunk/mavenrepo/</url>
				</repository>
			</repositories>
			<pluginRepositories>
				<pluginRepository>
					<id>gwt-maven</id>
					<url>http://gwt-maven.googlecode.com/svn/trunk/mavenrepo/</url>
				</pluginRepository>
			</pluginRepositories>
			<properties>
				<gwtVersion>1.6.4</gwtVersion>
			</properties>
		</profile>
		<profile>
			<id>local</id>
			<properties>
				<encoding>UTF-8</encoding>
				<targetJdk>1.6</targetJdk>
				<configuration>${basedir}/src/main/configuration</configuration>
				<glassfishDirectory>/home/koziolek/glassfishv3/glassfish</glassfishDirectory>
			</properties>
		</profile>
	</profiles>
	<activeProfiles>
		<activeProfile>gwt</activeProfile>
		<activeProfile>local</activeProfile>
	</activeProfiles>
</settings>

Dzięki takiemu podejściu nie muszę się już martwić o to czy wszystko jest aby dobrze skonfigurowane.

2 myśli na temat “Konfiguracja mavena poszała won z pom.xml

  1. Można również trzymać dane wrażliwe w osobnych plikach, a następnie za pomocą Mavena skorzystać z filtrowania zasobów i w locie nadpisywać docelowy plik.

  2. Ano można, ale w tym przypadku w fabryce mamy uniwersalną instalkę środowiska (JBoss, maven, ant, eclipse), która zawiera już odpowiednie definicje. Metodę zaproponowaną sprawdzę.

Napisz odpowiedź

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax