2013-11-27 27 views
17

Sto cercando di utilizzare onejar-maven-plugin nel mio pom.xml:Come forzare Sonatype Nexus ad aggiornare?

<plugin> 
    <groupId>org.dstovall</groupId> 
    <artifactId>onejar-maven-plugin</artifactId> 
    <version>1.4.4</version> 
    <executions> 
     <execution> 
      <configuration> 
       <mainClass>com.exmaple.myproj.MpPort_MpSoapPort_Client</mainClass> 
       <onejarVersion>0.97</onejarVersion> 
       <attachToBuild>true</attachToBuild> 
       <classifier>onejar</classifier> 
      </configuration> 
      <goals> 
       <goal>one-jar</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

<pluginRepositories> 
    <pluginRepository> 
     <id>onejar-maven-plugin.googlecode.com</id> 
     <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url> 
    </pluginRepository> 
</pluginRepositories> 

ma per qualche ragione, il tentativo di costruire tramite il plugin Eclipse Maven (Maven installare) si traduce in BUILD errore:

Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom 
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository onejar-maven-plugin.googlecode.com (http://onejar-maven-plugin.googlecode.com/svn/mavenrepo) 
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom 
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2) 
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom 
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2) 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Error building POM (may not be this project's POM). 


Project ID: org.dstovall:onejar-maven-plugin 

Reason: POM 'org.dstovall:onejar-maven-plugin' not found in repository: Unable to download the artifact from any repository 

    org.dstovall:onejar-maven-plugin:pom:1.4.4 

from the specified remote repositories: 
    Nexus (https://mynexus.example.com/nexus/content/repositories/central) 

for project org.dstovall:onejar-maven-plugin 

Così ho scaricato manualmente onejar-maven-plugin.jar e installarlo attraverso la linea di comando e mi sembra di essere sempre un errore simile:

C:\Users\daniel\myproj>mvn install:install-file -Dfile=onejar-maven-plugin-1.4.4.jar -DgroupId=com.jolira -DartifactId=onejar-maven-plugin -Dversion=1.4.4 -Dpackaging=jar 
[INFO] Scanning for projects... 
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom 
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository onejar-maven-plugin.googlecode.com (http://onejar-maven-plugin.googlecode.com/svn/mavenrepo) 
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom 
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2) 
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom 
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2) 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Error building POM (may not be this project's POM). 


Project ID: org.dstovall:onejar-maven-plugin 

Reason: POM 'org.dstovall:onejar-maven-plugin' not found in repository: Unable to download the artifact from any repository 

    org.dstovall:onejar-maven-plugin:pom:1.4.4 

from the specified remote repositories: 
    Nexus (https://mynexus.example.com/nexus/content/repositories/central) 

for project org.dstovall:onejar-maven-plugin 

La mia comprensione è che poiché abbiamo uno specchio Nexus che non contiene quel particolare artefatto, le cose si confondono.

Così ho provato a seguire le istruzioni su How to force Sonatype Nexus Regenerate/Reindex its Metadata ma la scheda "Sfoglia indice" non ha tale menu di scelta rapida! sul nostro Sonatype Nexus.

enter image description here

ho letto here che "Nexus memorizza nella cache solo i manufatti che i clienti hanno richiesto. Quindi è necessario impostare i pom progetto per richiedere le versioni corrette". Ma è esattamente quello che ho fatto - senza alcun cambiamento nel risultato.

Come uscire da questa situazione di "pollo & egg" e ottenere questo verbo-plugin onejar-ver. 1.4.4 nel mio specchio Nexus?

(In alternativa, come faccio a farlo nel mio nascondiglio .m2 locale?)

risposta

20

È possibile forzare Maven per aggiornare e richiedere le dipendenze di nuovo, anche se il repo locale contiene i metadati relativi manufatti non essere disponibile con -U

mvn clean install -U 

dovrebbe funzionare.

Inoltre, è necessario modificare lo settings.xml in modo che punti al gruppo pubblico anziché solo al servizio di deposito centrale direttamente. Più può essere trovato in the Nexus book.

E si dovrebbe notare che il repository centrale non ha il plugin onejar che si sta tentando di utilizzare. Controlla la search results e vedere come il groupId è com.joilira e non org.dstovall

ulteriormente più se si vuole veramente usare il plugin onejar da org.dstovall si dovrebbe aggiungere l'url http://onejar-maven-plugin.googlecode.com/svn/mavenrepo/ come un repository proxy per Nexus, aggiungerlo al gruppo pubblico e poi usa il gruppo pubblico nel tuo settings.xml

+0

Stavo per suggerire anche di commentare temporaneamente l'elemento '' nel suo 'settings.xml' (come soluzione alternativa per ottenere almeno il pacchetto nel suo' .m2' locale. cache), ma poi si accorse di avere una visione ancora più brillante: il suo Nexus punta a "com.jolira", non a "com.dstoval". +1 per quello! – sfinja

+1

È il file pom.xml con il riferimento errato. Niente a che fare con Nexus davvero ... –

+0

Ma se si guarda lo screenshot che ha fornito, il suo Nexus punta a un 'nejar-maven-plugin', solo da' jolira', non 'dstoval'. Non è questo ciò che sta causando il fallimento della sua installazione di Maven? – sfinja