tutorial que proyecto pom mvn español desde crear consola comandos maven

que - Maven: ¿el elemento del repositorio no se especificó en el POM dentro de la gestión de distribución?



mvn (5)

El ID de los dos repos son ambos localSnap ; eso probablemente no es lo que quieres y podría confundir a Maven.

Si eso no es todo: puede haber más elementos de repository en su POM. Busque en la salida de la mvn help:effective-pom de mvn help:effective-pom for repository para asegurarse de que el número y el lugar de los mismos es lo que espera.

Estoy intentando ejecutar el comando, mvn release:perform , pero obtengo este error:

Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy (default-deploy) on project git-demo: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter

Aquí está mi archivo pom.xml :

<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:[email protected]:Christian-Achilli-KP/git-demo.git</connection> <url>scm:git:[email protected]:Christian-Achilli-KP/git-demo.git</url> <developerConnection>scm:git:[email protected]: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> </distributionManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.1</version> </plugin> </plugins> </build> </project>

De hecho, puedo ver el

repositorio

declaración dentro del

DistributionManagent

etiqueta.

Aquí está mi 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>

¿Algún consejo por qué se queja?


Obtuve el mismo mensaje ("el elemento del repositorio no se especificó en el POM dentro del elemento distributionManagement"). Comprobé /target/checkout/pom.xml y según otra respuesta y realmente carecía <distributionManagement> .

Resultó que el problema era que faltaba <distributionManagement> en pom.xml en mi rama principal (usando git).

Después de limpiar ( mvn release:rollback , mvn clean , mvn release:clean , git tag -d v1.0.0 ) mvn release nuevamente y funcionó.


Para mí, esto era algo tan simple como una versión faltante para mi artefacto: "1.1-SNAPSHOT"


Revise el archivo pom.xml dentro de target/checkout/ . Lo más probable es que el pom.xml en su troncal o rama principal no tenga la etiqueta distributionManagement .


También puede anular el repositorio de implementación en la línea de comandos: -Darguments=-DaltDeploymentRepository=myreposid::default::http://my/url/releases