今天deploy一個jar包到私服上時,一直報錯,緣由一大串:apache
Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project ussp-common-parent: Failed to deploy artifacts: Could not transfer artifact com.ussp.common:ussp-common-parent:pom:1.0.0-20190214.060901-540 from/to snapshots (http://192.168.1.45:8081/nexus/content/repositories/snapshots/): Failed to transfer file: http://192.168.1.45:8081/nexus/content/repositories/snapshots/com/ussp/common/ussp-common-parent/1.0.0-SNAPSHOT/ussp-common-parent-1.0.0-20190214.060901-540.pom. Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1] [ERROR]
能夠看到最後顯示,返回碼是401,跟受權或權限相關。但是個人settings.xml文件裏面的用戶權限足夠,怎麼還報權限不足呢?我找了一大圈,終於發現是pom.xml文件與settings.xml關於受權相關的配置沒對應起來致使的,下面是我pom中的配置:bash
<distributionManagement> <repository> <id>releases</id> <name>Nexus Release Repository</name> <url>http://192.168.1.X:8081/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://192.168.1.X:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement>
下面是我settings.xml的配置:maven
<server> <id>nexus-releases</id> <username>admin</username> <password>admin</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>admin</password> </server>
比較能夠看到 pom中repository和snapshotRepository兩個庫的id沒有與settings.xml中對應起來。修改一致便可發佈成功。url