2010-07-15 21 views
4

Je cherche quelque chose comme ceci:maven2 - comment lister toutes les ressources URL du dépôt de fichier pom

List<URL> urls = listURLFromPOM("c:\pom.xml"); 

.. 

http://repo1.maven.org/maven2/org/apache/ibatis/ibatis-core/3.0/ibatis-core-3.0.jar 
http://repo1.maven.org/maven2/org/apache/camel/camel-activemq/1.1.0/camel-activemq-1.1.0.jar 

... 
+0

Quel est le contexte d'appel? Une implémentation de plugin Maven? Code que vous construisez dans un JAR avec Maven? Autre chose? En outre, un POM peut contenir des URL dans de nombreux endroits. Lesquels voulez-vous extraire? –

+0

Je veux juste imprimer une liste d'artefacts de dépôt distant ailleurs. Donc je peux le copier par la suite ... – CelinHC

Répondre

1

Vous pouvez utiliser le Maven Dependency Plugin pour analyser les dépendances de vous POM.

mvn dependency:list -DoutputAbsoluteArtifactFilename=true -DoutputFile=dependencies.txt 
+0

Utilisez SCP ou FTP pour transférer le fichier après la fin de l'appel de Maven (et n'oubliez pas d'évaluer la réponse). –

2

Une dépendance est pas au courant de son « référentiel source » qui pourrait ne pas être unique et vous ne serez pas en mesure d'obtenir le d'une dépendance « URL source » sans réellement résoudre . Une façon de le faire (sans écrire de code en utilisant les API internes de Maven) serait d'utiliser dependency:purge-local-repository. De la documentation Maven Dependency Plugin:

exécuter cette commande et rediriger la sortie vers un fichier pour le post-traitement:

mvn dependency:purge-local-repository > raw.txt 

Comme je viens de mentionner, si vous utilisez plusieurs référentiels, vous devrez peut-être faire un peu de post-traitement séparer le téléchargement "réussi" des tentatives "échouées". Voici un sample regex sur Rubular qui pourrait être utile pour implémenter un tel post-traitement (j'ai fourni du contenu illustrant le "problème").

+0

Merci beaucoup !!! Je l'ai fait sur Windows pour obtenir seulement les urls ... findstr "Téléchargement" raw.txt> urls.txt – CelinHC

+0

@CelinHC: De rien. Je viens de mettre à jour ma réponse et posté un lien pour illustrer un problème potentiel lors de l'utilisation de plusieurs référentiels (et comment filtrer la sortie). –