Maven - Oppslag avhengigheter under kjøring

stemmer
4

Jeg ønsker å være i stand til å finne ut hvilke versjoner jeg kjører over en avhengighet under kjøring samt versjon av web-applikasjon i seg selv.

Hver nettprogram I distribuere er pakket med en pom.xml som jeg kan lese fra, at en del er triviell. Den neste delen er parsing pom uten store anstrengelser.

Som webapplikasjonen kjører, jeg ønsker å være i stand til å forstå hvilken versjon jeg er, og hvilke versjoner mine avhengigheter er.

Ideelt sett vil jeg gjerne gjøre noe sånt som:

MavenPom pom = new MavenPom(webApplicationPomInputStream);
pom.getVersion();
pom.getArtifactId();
pom.getGroupId();

for(Dependency dependency:pom.getDependencies())
{
  dependency.getVersion();
  dependency.getArtifactId();
  dependency.getGroupId();
}

Skal jeg bare bruke XPath notasjon her, eller er det et bibliotek jeg kan ringe for å gjøre denne typen ting?

Etter disse innleggene, jeg tenker den raskeste / mest pålitelige måten er å generere en tekstfil med avhengighetsforhold i den: mvn avhengighet: treet. Da vil jeg analysere tekstfil, separere groupId, artifactId, og versjon, og deretter bestemme strukturen ved innrykket nivå.

Hvis jeg gjør det, kan jeg eksportere til XML i stedet for tekst? Da kan jeg bruke JAXB og enkelt analysere denne filen uten å gjøre noe / mye arbeid.

Det er en hack, men ser lovende ut.

Walter

Publisert på 29/12/2009 klokken 23:41
kilden bruker
På andre språk...                            


2 svar

stemmer
0

Maven har selvsagt en slik API. Ta en titt på org.apache.maven.project.MavenProject. Men for å være ærlig, jeg tror ikke det vil være så lett å lage et MavenProjecteksempel. Kildekoden vil være nyttig her, sjekk for eksempel MavenProjectTesteller kanskje Maven Plugin API (faktisk, vil denne oppgaven være mye, egentlig mye, enklere å oppnå fra en Mojo) for litt veiledning.

Jeg vil foreslå å søke etter eller stille dette spørsmålet på Maven-postlister , org.apache.maven.dev ville være passende her IMHO.

Svarte 30/12/2009 kl. 10:05
kilden bruker

stemmer
2

Jeg vil bare bruke mvn avhengighet: tree plugin for å generere en tekstfil med avhengigheten treet. Da vil jeg analysere det i og skape avhengighetsforhold / graf fra det. Jeg vil få omfanget av gjenstanden, groupId, artifactId, versjon, og den overordnede.

Jeg implementeres denne type oppslag, det bare tar avhengigheten utgang, analyserer den og organiserer avhengig bare bruker innrykk, ikke noe fancy. Den gjenstand, gruppe, versjon, og rammen er lett analyseres ettersom separatoren er en:.

Walter

Svarte 04/01/2010 kl. 11:01
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more