2014-11-26 9 views
19

sto avendo problemi durante la distribuzione e qui è il messaggio di errore ottengo:elemento repository non è stato specificato nella POM all'interno dell'elemento distributionManagement o in -DaltDep loymentRepository = id :: :: parametro di layout url

[INFO] 
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ core --- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 3.296 s 
[INFO] Finished at: 2014-11-26T17:05:00+02:00 
[INFO] Final Memory: 13M/244M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7: 
deploy (default-deploy) on project core: Deployment failed: repository element w 
as not specified in the POM inside distributionManagement element or in -DaltDep 
loymentRepository=id::layout::url parameter -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit 
ch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please rea 
d the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionE 
xception 

Ho controllato alcune risorse su internet e nessuna ha funzionato per il mio caso. Penso che sia correlato al mio pom.xml. Ecco le parti correlate di pom.xml:

<build> 
     <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>2.3.2</version> 
        <configuration> 
         <source>1.7</source> 
         <target>1.7</target> 
        </configuration> 
       </plugin> 
     </plugins> 
    </build> 

    <repositories> 
     <repository> 
       <id>repository.springframework.maven.release</id> 
       <name>Spring Framework Maven Release Repository</name> 
       <url>http://maven.springframework.org/release</url> 
     </repository> 
     <repository> 
       <id>Appid</id> 
       <name>AppName</name> 
       <url>http://IPaddress/nexus/content/repositories/Myapps/</url> 
     </repository> 
    </repositories> 

Allora, cosa ne pensa il problema potrebbe essere? Grazie in anticipo.

+1

è necessario definire il repository in cui si desidera distribuire, [vedi riferimento] (http://books.sonatype.com/nexus-book/reference/staging-sect-deployment.html#staging-sect-deployment-maven-deploy-plugin) – cy3er

risposta

28

È necessario includere il repository in cui si desidera distribuire nella sezione di gestione della distribuzione di pom.xml.

Esempio:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
         http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
... 
<distributionManagement> 
    <repository> 
     <uniqueVersion>false</uniqueVersion> 
     <id>corp1</id> 
     <name>Corporate Repository</name> 
     <url>scp://repo/maven2</url> 
     <layout>default</layout> 
    </repository> 
    ... 
</distributionManagement> 
... 
</project> 

Vedi Distribution Management

6

Nella tua pom.xml si dovrebbe aggiungere la configurazione distributionManagement su dove distribuire.

Nell'esempio seguente ho utilizzato il file system come posizione.

<distributionManagement> 
     <repository> 
     <id>internal.repo</id> 
     <name>Internal repo</name> 
     <url>file:///home/thara/testesb/in</url> 
     </repository> 
    </distributionManagement> 

è possibile aggiungere un altro luogo, mentre la distribuzione utilizzando il seguente comando (ma per evitare errore di cui sopra si dovrebbe avere almeno 1 repository configurato):

mvn deploy -DaltDeploymentRepository=internal.repo::default::file:///home/thara/testesb/in 
1

Il problema è stato risolto con l'aggiunta di repository url in distribuzioneGestione gestione nel pom.xml principale.

Jenkin Maven obiettivo: distribuire pulita -U -Dmaven.test.skip = true

<distributionManagement> 
    <repository> 
     <id>releases</id> 
     <url>http://domain:port/content/repositories/releases</url> 
    </repository> 
    <snapshotRepository> 
     <id>snapshots</id> 
     <url>http://domain:port/content/repositories/snapshots</url> 
    </snapshotRepository> 
</distributionManagement>