我已经在一个EC2实例上设置了一个私有的nexus管理器,并遵循了互联网上关于如何设置一个maven项目来使用它的各种说明。我也禁用了匿名账号。我可以通过curl -U username:password <the_url>
连接和复制存储库,它似乎工作得很好。然而,当我尝试使用maven (任何目标)时,我得到的第一件事是
[WARNING] Could not transfer metadata org.apache.maven.plugins:maven-compiler-plugin/maven-metadata.xml from/to nexus (http://MY_NEXUS_HOST:8081/nexus/content/groups/public): Not authorized , ReasonPhrase:Unauthorized.
然后,mvn命令会失败,因为它在任何地方都找不到插件。因此,我可以使用rest命令并且它可以按预期工作,但不是通过maven,这一事实向我表明这是配置问题。我想我很清楚发生了什么,我已经检查了一遍又一遍文件,但我没有发现任何问题。这是settings.xml文件
nexus-snapshot USER_NAME USER_PASSWD nexus release USER_NAME USER_PASSWD nexus * http://MY_NEXUS_HOST:8081/nexus/content/groups/public nexus http://centraltrue true central http://central true从不true始终关联
下面是pom文件的相关部分。
<distributionManagement>
<repository>
<id>nexus-release</id>
<name>Nexus Release Repository</name>
<url>http://MY_NEXUS_HOST:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>nexus-snapshot</id>
<name>Nexus Snapshot Repository</name>
<url>http://MY_NEXUS_HOST:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
我在想,有没有办法看清我遇到的问题。例如,如果我得到的是401、403或(出于某种原因?) 404。如果有人能帮我,我会很高兴的。哦,maven和nexus都是上周的最新版本。*编辑是因为无论你在点击提交前检查了多少次...
发布于 2015-09-15 02:50:20
哦,我的小山羊。问题在于,显然在settings.xml中,Id字段必须与服务器字段中的字段相同。即:
<servers>
<server>
<id>nexus-release</id> <---THIS MUST MATCH
<username>USER_NAME</username>
<password>USER_PASSWD</password>
</server>
</servers>
<mirrors>
<mirror>
<id>nexus-release</id> <---THIS
<mirrorOf>*</mirrorOf>
<url>http://MY_NEXUS_HOST:8081/nexus/content/groups/public</url>
</mirror>
</mirrors>
我想我使用哪一个并不重要(在这种情况下它们都是相同的,但不一定总是正确的)。
https://stackoverflow.com/questions/32569919
复制相似问题