75 votes

Maven: l'élément de référentiel n'a pas été spécifié dans le POM dans distributionManagement?

Je suis en train de mvn de presse:réaliser, mais j'ai cette erreur:

Échec de l'exécution de l'objectif org.apache.maven.plugins:maven-déployer-plugin:2.5:déployer (par défaut déployer) sur le projet git-démo: Le déploiement a échoué: le référentiel de l'élément n'a pas été spécifié dans le POM à l'intérieur distributionManagement élément ou dans -DaltDeploymentRepository=id::présentation::url paramètre

Voici mon pom:

    <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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sonatype.blog</groupId>
  <artifactId>git-demo</artifactId>
  <packaging>jar</packaging>
  <version>1.1-SNAPSHOT</version>
  <name>git-demo</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <scm> 
    <connection>scm:git:git@github.com:Christian-Achilli-KP/git-demo.git</connection> 
    <url>scm:git:git@github.com:Christian-Achilli-KP/git-demo.git</url> 
    <developerConnection>scm:git:git@github.com:Christian-Achilli-KP/git-demo.git</developerConnection>  
  </scm> 

<distributionManagement>
<!-- use the following if you're not using a snapshot version. -->
<repository>
    <id>localSnap</id>
    <name>RepositoryProxyRel</name>
    <url>http://127.0.0.1:8080/nexus/content/repositories/releases/</url>
</repository>
<!-- use the following if you ARE using a snapshot version. -->
<snapshotRepository>
    <id>MylocalSnap</id>
    <name>RepositoryProxySnap</name>
    <url>http://127.0.0.1:8080/nexus/content/repositories/snapshots/</url>
</snapshotRepository>


org.apache.maven.les plugins maven-release-plugin 2.1

En fait, je peux voir la

référentiel

déclaration à l'intérieur de la

distributionManagent

la balise.

Si utile, voici mon settings.xml:

<settings>
<servers>
        <server>
            <id>localSnap</id>
            <username>deployment</username>
            <password>****</password>
        </server>

        <server>
            <id>MylocalSnap</id>
            <username>deployment</username>
            <password>****</password>
        </server>

    <server>
      <id>myserver</id>
      <username>tomcat</username>
      <password>tomcat</password>
    </server>


    </servers>





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


  <profiles>

    <profile>
      <id>nexus</id>
      <properties>

        <project.build.sourceEncoding>MacRoman</project.build.sourceEncoding>

        <project.reporting.outputEncoding>MacRoman</project.reporting.outputEncoding>

      </properties>




      <!--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>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>

</settings>

Tout conseil pourquoi il se plaint? Merci beaucoup. C

39voto

alex Points 339

Consultez le fichier pom.xml à l’intérieur de target/checkout/ . Les chances sont, les pom.xml dans votre tronc ou branche principale n'a pas la balise distributionManagement .

10voto

mazi Points 46

J'ai eu le même message ("référentiel élément n'a pas été spécifié dans le POM à l'intérieur de distributionManagement élément"). J'ai vérifié /target/checkout/pom.xml et selon une autre réponse et il a vraiment manqué <distributionManagement>.

Il s'est avéré que le problème était qu' <distributionManagement> était manquant dans pom.xml dans ma branche master (à l'aide de git).

Après le nettoyage (mvn release:rollback, mvn clean, mvn release:clean, git tag -d v1.0.0)- je exécuter mvn release nouveau et cela a fonctionné.

4voto

Matthew Wise Points 221

Vous pouvez également remplacer le référentiel de déploiement sur la ligne de commande: -Darguments=-DaltDeploymentRepository=myreposid::default::http://my/url/releases

2voto

Aaron Digulla Points 143830

L'ID des deux pensions est à la fois localSnap ; ce n'est probablement pas ce que vous voulez et cela pourrait confondre Maven.

Si ce n'est pas le cas: il pourrait y avoir plus d'éléments repository dans votre POM. Effectuez une recherche dans les résultats de mvn help:effective-pom pour repository afin de vous assurer que leur nombre et leur emplacement correspondent à vos attentes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X