2009-11-09 11 views
4

Je viens de configurer la dernière version de Nexus pour notre société, et cela fonctionne très bien. Nous avons ajouté plusieurs référentiels tiers et l'un d'entre eux n'a pas de fichier .index présent. Il semble donc que Nexus ne puisse pas l'indexer, et que le maven local ne peut pas demander de deps dans ce repository. Définitivement malheureux.Obtenir Nexus pour télécharger des dépendances à partir d'un référentiel sans fichier .index

Y a-t-il un moyen de contourner cela, en plus de télécharger les fichiers manuellement et de les installer dans notre dépôt «hébergé» tiers?

Le repo maven en question: http://wicketstuff.org/maven/repository

Merci!

+0

Nexus peut très bien imiter le référentiel Wicketstuff, ce qui signifie que "le maven local ne peut pas non plus demander de dépots dans ce référentiel". La solution à ce problème consiste à demander aux mainteneurs de Wicketstuff de passer à un gestionnaire de référentiel capable de générer un index Nexus (tous Archiva, Artifactory et Nexus utilisent le format d'index Nexus, et je suis certain que tous les ils exposent le format de l'index Nexus.) –

Répondre

4

(EDIT: Après avoir relu ma réponse initiale, je pense que ce n'était pas totalement clair et précis donc je suis en train de l'éditer pour clarifier une partie.Par ailleurs, l'OP a ajouté un commentaire auquel je voulais répondre.) Il semble donc que Nexus ne puisse pas l'indexer, et que le maven local ne peut pas non plus demander de deps dans ce référentiel.

Je ne suis pas sûr de ce que vous voulez dire être « Nexus ne peut pas indexer ». Si le référentiel ne fournit pas d'index Nexus, son contenu ne pourra pas être recherché "par défaut". Mais Nexus est définitivement capable d'indexer les artefacts une fois qu'ils ont été téléchargés depuis ce dépôt. En ce qui concerne la deuxième partie, ", le maven local ne peut-il pas demander de services dans ce dépôt", en êtes-vous sûr? Pour moi, les indices Nexus (qui sont des indices Lucene) sont simplement une bonne chose pour faire des recherches dans les dépôts, mais un référentiel non indexé peut certainement être utilisé par proxy (Nexus ne peut pas espérer que tous les dépôts du monde fournissent un Nexus indice). Il doit donc y avoir quelque chose d'autre qui ne va pas dans votre configuration.

En supposant que vous voulez utiliser SNAPSHOTS wicket, j'ai installé et utilisé Nexus POM ci-dessous:

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.mycompany.samples.wicket</groupId> 
    <artifactId>nexus-wicket-testcase</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>nexus-wicket-testcase</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
     <groupId>org.apache.wicket</groupId> 
     <artifactId>wicket</artifactId> 
     <version>1.5-SNAPSHOT</version> 
    </dependency> 
    </dependencies> 
</project> 

Puis, je l'ai ajouté http://wicketstuff.org/maven/repository comme instantané dépôt dans Nexus et ont énuméré dans le Référentiels publics groupe. Enfin, j'ai configuré Maven comme documenté dans Configuring Maven to Use a Single Nexus Group. Avec cette configuration

, je reçois la sortie suivante lors de l'exécution par exemple eclipse:eclipse:

 
$ mvn eclipse:eclipse 
... 
[INFO] snapshot org.apache.wicket:wicket:1.5-SNAPSHOT: checking for updates from central 
Downloading: http://localhost:8081/nexus/content/groups/public/org/apache/wicket/wicket/1.5-SNAPSHOT/wicket-1.5-20091109.012145-88.pom 
2K downloaded (wicket-1.5-20091109.012145-88.pom) 
[INFO] snapshot org.apache.wicket:wicket-parent:1.5-SNAPSHOT: checking for updates from central 
Downloading: http://localhost:8081/nexus/content/groups/public/org/apache/wicket/wicket-parent/1.5-SNAPSHOT/wicket-parent-1.5-SNAPSHOT.pom 
22K downloaded (wicket-parent-1.5-SNAPSHOT.pom) 
Downloading: http://localhost:8081/nexus/content/groups/public/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8.pom 
2K downloaded (slf4j-api-1.5.8.pom) 
Downloading: http://localhost:8081/nexus/content/groups/public/org/slf4j/slf4j-parent/1.5.8/slf4j-parent-1.5.8.pom 
7K downloaded (slf4j-parent-1.5.8.pom) 
Downloading: http://localhost:8081/nexus/content/groups/public/org/apache/wicket/wicket/1.5-SNAPSHOT/wicket-1.5-20091109.012145-88.jar 
1944K downloaded (wicket-1.5-20091109.012145-88.jar) 
Downloading: http://localhost:8081/nexus/content/groups/public/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8.jar 
22K downloaded (slf4j-api-1.5.8.jar) 
... 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESSFUL 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 2 minutes 2 seconds 
[INFO] Finished at: Wed Nov 11 06:12:01 CET 2009 
[INFO] Final Memory: 9M/79M 
[INFO] ------------------------------------------------------------------------ 

Tout semble bien pour moi.


... mais une maven locale serait certainement savoir comment obtenir DEPS de la pension, le groupId + artifactId + numéro de build donne le chemin complet de l'application. Oui, c'est pourquoi je pense que vous avez un problème d'installation quelque part. Maven devrait être en mesure de trouver une dépendance (par exemple, un guichet) dans le bon référentiel si Maven et Nexus sont correctement configurés comme démontré. Vérifiez votre définition settings.xml et/ou vos dépendances.

Pour nexus l'indexer, il faudrait explorer tous les chemins de répertoire qu'il trouve qui il ne semble pas faire

Ce n'est pas comment les choses fonctionnent AFAIK. Si un référentiel ne fournit pas d'index, Nexus peut uniquement indexer les artefacts déjà téléchargés. Nexus n'explore pas un référentiel.

+0

certainement pensée intéressante, mais un maven local serait certainement savoir comment obtenir des retards sur le repo, le numéro groupid + artifactid + build lui donne le chemin complet vers l'application. pour que nexus l'indexe, il devrait explorer tous les chemins de répertoires qu'il a trouvés qu'il ne semble pas faire. – kinabalu

+0

Correct. Nexus est un bon référent et ne va pas explorer un dépôt distant. L'indexation n'affecte que la recherche de la télécommande mais n'a aucune incidence sur la capacité de proxy des artefacts. –

+0

mais si nexus ne recherche pas un référentiel distant et que le référentiel distant n'expose pas un index, comment nexus sait-il ce qui est disponible? –

3

Définissez «Télécharger les index distants» sur «Faux» dans Nexus.

Ensuite, exécutez localement "mvn -U paquet propre".