Est-il possible d'obtenir une instance de org.apache.maven.project.MavenProject
ou une autre forme d'objet du POM à partir du fichier pom.xml uniquement?Obtenez MavenProject à partir de l'analyseur POM.xml - pom uniquement?
Merci d'avance.
Est-il possible d'obtenir une instance de org.apache.maven.project.MavenProject
ou une autre forme d'objet du POM à partir du fichier pom.xml uniquement?Obtenez MavenProject à partir de l'analyseur POM.xml - pom uniquement?
Merci d'avance.
oui vous pouvez. C'est le code. Vous avez besoin maven-modèle 3.0.4.jar et plexus-utils-2.0.6.jar et maven-core-3.0.4.jar
Model model = null;
FileReader reader = null;
MavenXpp3Reader mavenreader = new MavenXpp3Reader();
try {
reader = new FileReader(pomfile);
model = mavenreader.read(reader);
model.setPomFile(pomfile);
}catch(Exception ex){}
MavenProject project = new MavenProject(model);
Cool, merci. Cela marche. – javamonkey79
J'ai essayé votre solution mais elle ne remplit pas certains champs de l'objet MavenProject auquel je m'attendais, comme getCompileSourceRoots() retourne la liste vide. – javydreamercsw
La lecture d'un fichier pom n'implique pas l'interpolation de données telles que des variables, des paramètres hérités des parents (et de leurs proto-parents), etc. – carlspring
Si vous voulez obtenir le MavenProject basé sur groupId, artifactId et la version que vous devez exécuter à l'intérieur d'un plugin maven. Et ce code fera l'affaire:
ProjectBuildingRequest configuration = new DefaultProjectBuildingRequest();
configuration.setProcessPlugins(false);
configuration.setRepositorySession(session);
org.apache.maven.artifact.Artifact artifact = new org.apache.maven.artifact.DefaultArtifact(groupId, artifactId, version, "compile", "", "", new DefaultArtifactHandler());
MavenProject project = projectBuilder.build(artifact, configuration).getProject();
Les propriétés manquantes peuvent être injectées dans le plugin maven.
Pourquoi le voulez-vous - qu'essayez-vous d'accomplir? –
Création de rapports sur notre serveur CI. – javamonkey79