2012-01-19 19 views
7

Desidero caricare il mio plug-in personalizzato su Nexus.Come caricare il plugin Maven nel repository Nexus?

Il mio problema è che quando ho caricato il mio plugin per nexus via web UI, come la dipendenza ordinaria, Maven non riesce a trovarlo:

Plugin com.huawei: Maven-progetto-versione-plugin: 1.0 o una delle sue dipendenze non può essere risolta: Impossibile leggere il descrittore di artefatti per com.huawei: maven-project-version-plugin: jar: 1.0: impossibile trovare com.mycompany: maven-project-version-plugin: pom : 1.0 in http://localhost:8081/nexus/content/groups/public è stato memorizzato nella cache nel repository locale , la risoluzione non verrà ritestata fino a quando l'aggiornamento intervallo di nexus è trascorso o gli aggiornamenti sono forzati -> [Aiuto 1]

Ma quando installo il mio plugin per fare clic su repository locale (non nexus) tramite la riga di comando tutto va bene.

Quindi, qual è la differenza tra l'installazione di plugin maven personalizzati e l'installazione di artefatti "non plugin"? Ci sono trucchi?

mio settings.xml:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> 

    <mirrors> 
    <mirror> 
     <!--This sends everything else to /public --> 
     <id>nexus</id> 
     <mirrorOf>*</mirrorOf> 
     <url>http://localhost:8081/nexus/content/groups/public</url> 
    </mirror> 
    </mirrors> 

    <profiles> 
    <profile> 
     <id>nexus</id> 
     <!--Enable snapshots for the built in central repo to direct --> 
     <!--all requests to nexus via the mirror --> 
     <repositories> 
     <repository> 
      <id>central</id> 
      <url>http://central</url> 
      <releases><enabled>true</enabled></releases> 
      <snapshots><enabled>true</enabled></snapshots> 
     </repository> 
     </repositories> 
    <pluginRepositories> 
     <pluginRepository> 
      <id>central</id> 
      <url>http://central</url> 
      <releases><enabled>true</enabled></releases> 
      <snapshots><enabled>true</enabled></snapshots> 
     </pluginRepository> 
     </pluginRepositories> 
    </profile> 
    </profiles> 

    <activeProfiles> 
    <!--make the profile active all the time --> 
    <activeProfile>nexus</activeProfile> 
    </activeProfiles> 
</settings> 
+0

Avrebbe bisogno di saperne di più sulla configurazione del tuo computer. Stai utilizzando repository di plugin in settings.xml o pom.xml? – Michael

+0

@ Michael Ho aggiunto il mio settings.xml, come dici tu. Ma penso, il problema non è in esso. Posso scaricare tutte le altre dipendenze da nexus: le mie dipendenze dai repository ospitati e tutte le altre dipendenze dai repository proxy. Posso scaricare il mio plugin, se li contrassegno come . Ma quando provo a impostarli come , Maven non riesce a trovarlo. – Sergey

risposta

8

Il problema è stato risolto. Bene, non so come, ma oggi tutto è lavoro. Penso che il problema fosse nella cache del Nexus. Ho appena cancellato il mio repository ospitato e l'ho creato di nuovo. Forse, ci sono metodi meno radicali, ma non li conosco =) Elimina gli artefatti e poi "expire cache" non è d'aiuto nel mio caso.

Bene, la risposta alla mia domanda: non c'è differenza tra il plug-in di installazione e l'artefatto non plugin in Nexus, tranne uno. Se selezioni GAV Definition: parametri GAV, devi selezionare "maven-plugin" in combobox "Packaging".

Penso che non sia necessario scrivere istruzioni passo passo, è molto semplice. Basta selezionare il repository ospitato -> scheda Caricamento artefatto e compilare i campi obbligatori.

4

Inoltre, è necessario aggiungere anche il pom del plug-in Maven. Se non lo fai, Nexus ne genererà automaticamente uno che non è corretto. cioè sarà solo un pom base costituito da versione, artefatto, imballaggio e groupID.

Problemi correlati