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.