Comment accéder aux propriétés maven définies dans le pom dans un projet maven normal et dans un projet de plugin maven?
Utilisez le plugin properties-maven pour écrire des properties
pom spécifiques dans un fichier au moment de la compilation, puis lisez ce fichier au moment de l’exécution.
Dans votre pom.xml :
${project.name> ${project.version} bar org.codehaus.mojo properties-maven-plugin 1.0-alpha-2 generate-resources write-project-properties ${project.build.outputDirectory}/my.properties
Et puis dans .java :
java.io.InputStream is = this.getClass().getResourceAsStream("my.properties"); java.util.Properties p = new Properties(); p.load(is); Ssortingng name = p.getProperty("name"); Ssortingng version = p.getProperty("version"); Ssortingng foo = p.getProperty("foo");
Configurez une variable système à partir de Maven et en Java après l’appel
System.getProperty("Key");
Maven a déjà une solution pour faire ce que vous voulez:
Obtenez MavenProject à partir de l’parsingur POM.xml – pom?
btw: premier coup sur google search;)
Model model = null; FileReader reader = null; MavenXpp3Reader mavenreader = new MavenXpp3Reader(); try { reader = new FileReader(pomfile); // <-- pomfile is your pom.xml model = mavenreader.read(reader); model.setPomFile(pomfile); }catch(Exception ex){ // do something better here ex.printStackTrace() } MavenProject project = new MavenProject(model); project.getProperties() // <-- thats what you need
Cela peut être fait avec les propriétés Java standard en combinaison avec le plugin maven0-resource-plugin avec le filtrage activé sur les propriétés. Pour plus d’infos voir
http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html
Cela fonctionnera pour le projet maven standard comme pour les projets de plug-in
Vous pouvez parsingr le fichier pom avec JDOM (http://www.jdom.org/).