Předefinovat to nepůjde, je to definice packaging war v Mavenu – ve zdrojácích Mavenu je to soubor maven-2.0.x\maven-artifact\src\main\resources\META-INF\plexus\components.xml . Znamenalo by to jedině vytvořit si nový packaging, v něm použít nový typ a obojí oddědit od stávajícího packaging-war. Jenže tam je zase problém s tím, že Plexus (IoC, na kterém je postaven Maven) neumí dědit komponenty z jiného JARu – protože používá k definici komponent anotace v JavaDocu, ke kterým se nedostane, pokud je objekt mimo právě zpracovávané zdrojové kódy. Jde to obejít pluginem http://www.ops4j.org/projects/pax/construct/maven-inherit-plugin/ , ale nevím, jestli se vyplatí něco takového dělat, když existuje funkční workaround.
Filip Jirsák Dne 24. září 2008 11:11 Franta Petr <[EMAIL PROTECTED]> napsal(a): > Trochu jsem pátral, ale v mé lokální repositury .m2 jsem nenašel na žádném > místě (v JAR souboru i mimo něj) žádný konfigurační soubor obsahující text > <addedToClasspath>false</addedToClasspath>. Kde jste získal Vámi popisovanou > konfiguraci? > Jinak ta definici vypadá slibně, ale netuším kde jí předefinovat ... > > Díky > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Filip Jirsák > Sent: Wednesday, September 24, 2008 8:46 AM > To: Java > Subject: Re: Problém s Maven dependency ... > > Typ "war" je definován následujícím způsobem: > > <component> > <role>org.apache.maven.artifact.handler.ArtifactHandler</role> > <role-hint>war</role-hint> > > <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> > <configuration> > <type>war</type> > <includesDependencies>true</includesDependencies> > <language>java</language> > --> <addedToClasspath>false</addedToClasspath> > </configuration> > </component> > > Není problém v téhle definici? To by znamenalo, že POM typu war není > možné na classpath přidat… > > Filip Jirsák > > Dne 24. září 2008 7:21 Franta Petr <[EMAIL PROTECTED]> napsal(a): >> Myslím si, že problém není WAR, ale dependency typu WAR. Default typ je JAR, >> takže vynecháním <type>war</type> se nastaví default na JAR a ten samozřejmě >> neexistuje, proto je typ WAR uveden. Maven dependency plugin pracuje správně >> v tom, že příkaz mvn dependency:copy-dependencies vykopíruje veškeré >> dependencies včetně WAR souboru, ale Maven dependency WAR nepřidá do >> systémových proměnných pro běh testu :-( >> >> Vyřešil jsem to tak, že jsem použil právě dependency plugin, kterým na >> <phase>test-compile</phase> provedu <goal>unpack-dependencies</goal> s >> definicí WAR souboru. Následně se spustí test, který už najde rozbalené >> soubory v daném adresáři, které potřebuje kontrolovat. Je to jen obejití buď >> chyby programu Maven 2.0.9 nebo mé neznalosti programu Maven ... >> >> Petr F. >> >> -----Original Message----- >> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Filip Jirsák >> Sent: Tuesday, September 23, 2008 8:27 PM >> To: Java >> Subject: Re: Problém s Maven dependency ... >> >> Zdravím, >> sice jsem dodneška nepochopil,jak si autoři Mavenu představovali >> používání artifactů, typů, classifierů, attached artifactů a >> souvisejících záležitostí, ale mám dva tipy: 1. maven-war-plugin má v >> dokumentaci pro war:war uvedeno, že se .war generuje ve výchozím >> nastavení jako primární artifact (volba primaryArtifact), takže bych >> zkusil v závislosti vynechat <type>war</war>. Pokud to nepomůže, >> nezbývá asi než se podívat do zdrojáků maven-war-pluginu, jak vlastně >> .war připojuje. Možná by také pomohlo přidat .war artifactu nějaký >> classifier – zatím mám takový dojem, že Maven špatně rozlišuje, co je >> primární artifact a co přiložený, pokud se artifacty liší jen typem a >> ne classifierem. >> >> S pozdravem >> >> Filip Jirsák >> >> 2008/9/23 Franta Petr <[EMAIL PROTECTED]>: >>> Narazil jsem na problém s dependency: >>> >>> Napsal jsem si test, který dělá kontrolu dat oproti DB (překlady, integrita >>> XSD, atd). Můj problém je v tom, že natahuji soubory XSD pomocí funkce >>> getResourceAsStream z jednotlivých balíčků a provádím kontrolu dat v nich. >>> Jestliže si v IDE nastavím cestu na WAR soubor, vše funguje, ale pomocí >>> Maven to spadne na chybu, kdy funkce getResourceAsStream vrátí null hodnotu. >>> mvn dependency:list nebo mvn dependency:tree zobrazí, že daná závislost >>> (WAR) je součástí dependencies. V testu jsem si nechal vypsat proměnné >>> prostředí a zjistil jsem, že Maven daný WAR soubor nemá v žádné ze svých >>> classpath proměnných. V pom.xml mám uvedeno >>> <dependency><groupId>package</groupId><artifactId>artifact-web</artifactId><version>1.0-SNAPSHOT</version><type>war</type><scope>test</scope></dependency>. >>> >>> >>> >>> Petr F. >>> >>> >>> >>> >> >> >> >> -- >> Filip Jirsák >> [EMAIL PROTECTED] >> > > > > -- > Filip Jirsák > [EMAIL PROTECTED] > -- Filip Jirsák [EMAIL PROTECTED]
