Maven 2 – Endorsed libs

Při použití Mavenu, kdy někdy je potřeba občas přidat nějakou tu knihovnu do endorsed adresáře JRE (například projekt Metro vyžaduje přetížit JAXWS a JAXB API), je možné použít mechanismus, kdy se do JRE přihrají knihovny tak, jako by byly nakopírovány přímo do %JAVA_HOME%/lib/endorsed.

Jenže mě se nechtělo cokoliv, co je závislé na aplikaci, nahrávat do libendorsed adresáře veřejné JRE. Jak tedy na to? Nejlépe tak, že si vytvoříte v adresáři s nainstalovaným Mavenem adresář endorsed a do něj nakopírovat soubor all.zip obsahující všechny class soubory, které jsem potřeboval „přetížit“. V mém případě (JAXWS API 2.1) to byly tyto JARy:

  • jaxb-api-2.1.jar
  • jaxws-api-2.1-1.jar

Poté je nutné modifikovat systémovou proměnnou MAVEN_OPTS takto:

set MAVEN_OPTS=-Xbootclasspath/p:%M2_HOME%endorsedall.zip

Pozn. Já ještě musím zvednout paměť pro JRE, takže má osobní konfigurace vypadá takto:

set MAVEN_OPTS=-Xbootclasspath/p:%M2_HOME%endorsedall.zip -Xms64m -Xmx512m

Pakliže máte srávně nainstalovaný Maven a korektně nastavenou proměnnou M2_HOME, nyní by JRE mělo brát obsah souboru all.zip v potaz a JAXWS API 2.1 začne fungovat. Podobně si můžete přibalovat další JARy – podle toho, jak bude potřeba.

Napsat komentář