Beim Deployment in Nexus wird ein 401-Fehler angezeigt. Ich nehme keine Änderungen am installierten Nexus vor. Nexus läuft auf localhost:8080/nexus
und ich kann mich mit Standardbenutzer/Passwort anmelden. Wenn ich mvn deploy
laufen lasse, erhalte ich diesen Fehler.
Hier ist mein POM.
<groupId>testproject</groupId>
<artifactId>testproject</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>testproject</name>
<url>http://maven.Apache.org</url>
<distributionManagement>
<repository>
<id>releases</id>
<url>http://localhost:8080/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://localhost:8080/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<dependencies>
.........
</dependencies>
und ~/.m2/settings.xml
<servers>
<server>
<id>snapshots</id>
<username>deployment</username>
<password>deployment123</password>
</server>
<server>
<id>releases</id>
<username>deployment</username>
<password>deployment123</password>
</server>
</servers>
Ausnahme:
Failed to execute goal org.Apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default- deploy) on project testproject: Failed to deploy artifacts: Could not transfer artifact testproject:testproject:jar:1.0-20131213.150615-1 from/to snapshots (http://localhost:8080/nexus/content/repositories/snapshots): Failed to transfer file: http://localhost:8080/nexus/content/repositories/snapshots/testproject/testproject/1.0-SNAPSHOT/testproject-1.0-20131213.150615-1.jar.
Return code is: 401 -> [Help 1]
Bitte hilf mir.
Es funktioniert jetzt. Sie müssen $M2_HOME/conf/settings.xml
anstelle von /home/user/.m2/settings.xml
bearbeiten.
HTTP 401 ist der Statuscode für "nicht autorisiert". Dies bedeutet, dass Ihr deployment
-Benutzer nicht berechtigt ist, Artefakte in dieses bestimmte Repository in Nexus hochzuladen. Melden Sie sich bei Nexus an, und weisen Sie dem Benutzer deployment
die erforderlichen Rollen zu, um dieses Snapshot-Repo zu ändern.
Der Benutzer, den Sie für Snapshot-Bereitstellungen verwenden, benötigt eine Rolle mit den folgenden Berechtigungen:
Mir fehlte das
<servers>
-Tag auf meinem.m2/settings.xml
auf Gitlab-ci + MAVEN + Jfrog Artifactory:
Mein Gitlab-ci.yxml
Artifactory_deploy:
stage: install
only:
- desarrollo
script:
- echo "Deploying to Artifactory"
- cd $CLONE_DIR
- mvn -X deploy
Meine .m2/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
https://maven.Apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<username>${ARTIFACTORY_USER}</username>
<password>${ARTIFACTORY_PASSWORD}</password>
<id>central</id>
</server>
<server>
<username>${ARTIFACTORY_USER}</username>
<password>${ARTIFACTORY_PASSWORD}</password>
<id>snapshots</id>
</server>
</servers>
<profiles>
<profile>
<id>develop</id>
<properties>
<artifactory.ip>${ARTIFACTORY_IP}</artifactory.ip>
<artifactory.port>${ARTIFACTORY_PORT}</artifactory.port>
</properties>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<username>admin</username>
<password>THISWASMYENCRYPTEDPASSWORD</password>
<url>http://${ARTIFACTORY_IP}:${ARTIFACTORY_PORT}/artifactory/libs-release</url>
</repository>
<repository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<username>admin</username>
<password>THISWASMYENCRYPTEDPASSWORD</password>
<url>http://${ARTIFACTORY_IP}:${ARTIFACTORY_PORT}/artifactory/libs-snapshot</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<username>admin</username>
<password>password</password>
<url>http://${ARTIFACTORY_IP}:${ARTIFACTORY_PORT}/artifactory/libs-release</url>
</pluginRepository>
<pluginRepository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<username>admin</username>
<password>password</password>
<url>http://${ARTIFACTORY_IP}:${ARTIFACTORY_PORT}/artifactory/libs-snapshot</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>develop</activeProfile>
</activeProfiles>
</settings>
<servers>
<server>
<id>snapshots</id>
<username>deployment</username>
<password>deployment123</password>
</server>
<server>
<id>releases</id>
<username>deployment</username>
<password>deployment123</password>
</server>
</servers>