Basé sur le post il est mentionné (par Brett Porter) qu'un POM peut être lu. Ce dont j'ai besoin, c'est de lire non seulement un seul pom. J'ai besoin de lire l'arbre entier de pom dans une construction multimodule. En commençant par la racine pom et il devrait lire automatiquement le pom de l'enfant si c'est possible? Je dois le faire dans un code Java séparé, pas en relation avec Maven lui-même.Lecture POM avec ses enfants
Répondre
Peut-être est tricher un petit peu, mais vous pourriez peut-être appeler mvn help:effective-pom
sur la pom-mère par Runtime.exec (http://java.sun.com/javase/6/docs/api/java/lang/Runtime.html#exec%28java.lang.String%29), qui vous donnera le fichier pom congolemerate de la cible que vous pom appelé sur lorsqu'il est combiné avec son parents et modules. Cela vous permettra de travailler avec un seul fichier pom et d'éviter que vous ayez à découvrir des modules/parents vous-même.
Je ne connais pas assez les librairies maven elles-mêmes pour savoir comment générer un pomnative efficace sans démarrer maven dans un autre processus, bien que je ne puisse pas imaginer que ce soit impossible. Si j'ai l'occasion de regarder, je le ferai et j'éditerai ma réponse en conséquence.
[Modifier]
est ici un lien vers le code source EffectivePomMojo qui montre comment l'aide: efficace-pom génère que xml: http://svn.apache.org/viewvc/maven/plugins/tags/maven-help-plugin-2.1.1/src/main/java/org/apache/maven/plugins/help/EffectivePomMojo.java?view=markup. J'espère que cela aidera ... même si je ne suis pas familier avec la façon dont Mojo obtient son objet MavenProject ou les objets List of MavenProject qui ont une portée privée.
Non, je ne peux pas appeler l'aide mvn: efficace-pom ... Je dois le faire en Java Code ... sans appel exec. – khmarbaise
Je mentionne que vous voulez faire cela sans maven. Essayer de le faire sans se fier à maven, ou particulièrement aux bibliothèques maven comme maven-model, maven-project-builder, impliquera beaucoup de réinvention du code déjà existant. Vous pouvez lire les fichiers POM et en extraire des données sans avoir à créer une version complète de Maven.
Le code source de Artifactory a quelques conseils utiles, comme l'utilisation
MavenXpp3Reader reader = new MavenXpp3Reader();
Model model = reader.read(new InputStreamReader(in, "utf-8"));
Pour lire dans un pom Maven et obtenir le modèle. Le modèle a une méthode addModule et getModules(). Vous pouvez l'utiliser pour localiser les poms enfants par rapport au pom parent actuel.
Ah désolé ... alors ma question n'était pas assez précise. Bien sûr, je peux utiliser les bibliothèques Maven. La chose que je ne peux pas faire est de laisser Maven faire le travail ... j'ai besoin des dépendances des modules etc. Mais ton indice est très bon ... Merci. – khmarbaise
@mdma Le lien donné est cassé pouvez-vous s'il vous plaît le mettre à jour ASAP –
- 1. Rendu UIView avec ses enfants
- 2. SQL-Copie d'un enregistrement avec ses enregistrements enfants associés
- 3. WPF Grid - aligner ses enfants automatiquement
- 4. Mauvaise sortie effective-pom
- 5. Maven Agréger POM avec objectif?
- 6. Lire noeud XMLDocument sans lire ses nœuds enfants en C#
- 7. Lier StackPanel.Visibilité à la propriété Visibility de ses enfants
- 8. Sélectionnez un élément exact et non ses enfants
- 9. XML: lecture des enfants d'un élément
- 10. Tuer un sous-processus, y compris ses enfants de python
- 11. Cloner un sélecteur + tous ses enfants dans jQuery?
- 12. WPF - Puis-je empêcher UserControl d'exposer ses éléments enfants nommés?
- 13. Le processus parent n'attrape pas tous ses processus enfants
- 14. Obtention du contenu d'un élément SANS ses enfants
- 15. NHibernate: Comment récupérer un objet sans ses collections enfants?
- 16. jQuery manipulation DIV mais pas ses éléments enfants
- 17. Réglage Maven checksum pom?
- 18. Maven: Déterminer parent POM
- 19. Maven Super POM
- 20. Comment créer un modèle Django avec ForeignKeys qui ne cascade pas les suppressions à ses enfants?
- 21. sélection des éléments enfants enfants avec linq
- 22. Lecture de la structure DataSet sans lire ses données
- 23. lecture des éléments enfants d'un composant XBL et construire XPath
- 24. Projet multi-module maven avec parent pom et svn layout
- 25. Entity Framework: supprime l'enregistrement avec ses sous-dossiers
- 26. Obtenir le nom du fichier maven pom
- 27. Pom/Propriétés du projet via Eclipse maven2
- 28. mvn archetype: générer erreur POM de construction (peut ne pas être POM de ce projet)
- 29. Comment limiter l'interaction DOM à un élément et à ses enfants?
- 30. Comment utiliser artefact: writepom et artefact: pom?
@khmarbaise pouvez-vous me dire quel avantage tireriez-vous de la lecture de pom et de ne pas l'exécuter? – ant
J'ai un projet qui est une combinaison de Make/CMake/Maven et j'ai besoin de lire les informations de dépendance des projets Java. Je sais que ce n'est pas le meilleur moyen. Je serais le premier à vouloir changer cela, mais pour le moment je n'ai pas le choix. – khmarbaise