Jeg hadde en spesifikk kløe i dag : bulk-redigering av Maven POM-filer for å endre innholdet i et bestemt element.
Så jeg laget XmlEditor for å sette innholdet i noder plukket ut ved hjelp av XPath.
Dersom du for eksempel skal endre versjonsnummeret i alle POM-filer til en gitt versjon, kan du gjøre følgende:
java XmlEditor /project/version:=9.9.9 `find . -name pom.xml`
Eller for å oppdatere til siste versjon av jUnit og log4j :
java XmlEditor \
"//dependency[artifactId='junit']/version:=4.3.1" \
"//dependency[artifactId='log4j']/version:=1.2.14" \
`find . -name pom.xml`
Det er bare fantasien og hva man får til med XPath som begrenser hva man kan gjøre med denne..




2 kommentarer:
Det var fancy!
I Maven 1.x satte vi i enkelte tilfeller versjonsnummeret som en parameter i en property-fil, og refererte til parameteren i POM'ene.
Kunne man gjort noe tilsvarende i Maven 2?
I Maven er det mange måter å gjøre dette på.
Den beste måten å håndtere versjonsnumre på dependencies er ved hjelp av dependencyManagement i topp POM til et prosjekt. Dersom denne brukes, angir man ikke version når man angir dependency.
Properties kan også brukes. I Maven 2 kan properties komme fra environment, Java system properties, eller settings.xml i $HOME/.m2 eller Maven installasjonen, samt i <properties> i POM.
Se dokumentasjonen for mer info.
Legg inn en kommentar