尝试使用 Maven 将 jar 部署到 Nexus 3 存储库但能够下载依赖项时访问被拒绝
Access denied when trying to deploy jars to a Nexus 3 repository using Maven but able to download dependencies
我已经在具有以下存储库的服务器上安装了 Nexus 3:
第一个回购:
Name: maven-central,
Type: proxy,
Layout policy: Permissive,
URL: http://ip:port/nexus/repository/maven-central/,
Remote storage: https://repo1.maven.org/maven2/
第二个回购:
Name: own,
Type: hosted,
Version policy: Mixed,
Layout policy: Permissive,
URL: http://ip:port/nexus/repository/own/
回购组:
Name: whatever,
Format: maven2,
Type: group,
Members: maven-central, own
URL: http://ip:port/nexus/repository/whatever/
我已经为以下存储库安装了 SSL 证书:repo1.maven.org 和 repo.maven.apache.org。
settings.xml 具有以下结构:
<localRepository>${user.home}/.m2/repository</localRepository>
<profiles>
<profile>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>maven-repository</id>
<url>http://ip:port/nexus/repository/whatever/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven-repository-plugin</id>
<name>maven-repository-plugin</name>
<url>http://ip:port/nexus/repository/whatever/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>interval:15</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profiles>
<servers>
<server>
<id>maven-repository</id>
<username>admin</username>
<password>**</password>
</server>
</servers>
问题是我可以使用此 settings.xml 文件下载项目依赖项,但我无法使用 Maven 部署文件,因为出现以下错误:
Failed to deploy artifacts groupId:artifactId:version:jar:version from/to remote-repository(http://ip:port/nexus/repository/whatever): Access denied to: http://ip:port/nexus/repository/whatever/groupId/artifactId/...
,
当 运行 以下部署命令时:
deploy:deploy-file
-Durl=http://ip:port/nexus/repository/own/
-DgeneratePom=false
-DgroupId=groupId
-DartifactId=artifactId
-Dversion=version
-Dpackaging=jar
-Dfile=name.jar
有什么我可以做的吗?我尝试更改存储库以使用托管存储库(自己的)而不是组,我尝试在 settings.xml 文件中添加镜像。
我不得不提一下,用户是默认管理员,具有默认角色(全部)。
我在想这可能是 SSL 入站证书的问题,但在 Nexus 3 中我不知道如何禁用该检查。此外,目前无法手动上传 jars。
编辑:我也尝试添加镜像,但是当我添加镜像时,下载停止工作。
第二次编辑:使用 HTTP 我能够上传文件(使用 CURL)
您需要将“-DrepositoryId=someid”添加到部署文件目标,其中 "someid" 是 settings.xml 文件中具有部署所需凭据的服务器部分的 ID .
<settings>
<servers>
<server>
<id>someid</id>
<username>deployment</username>
<password>deployment123</password>
</server>
</servers>
尽管问题很老,但我记得我有 2 个问题。
我已通过以下方式修复它们:
- 添加和设置正确的代理和正确的非代理主机。
- 添加正确的信任库(和正确的证书)。
我已经在具有以下存储库的服务器上安装了 Nexus 3:
第一个回购:
Name: maven-central,
Type: proxy,
Layout policy: Permissive,
URL: http://ip:port/nexus/repository/maven-central/,
Remote storage: https://repo1.maven.org/maven2/
第二个回购:
Name: own,
Type: hosted,
Version policy: Mixed,
Layout policy: Permissive,
URL: http://ip:port/nexus/repository/own/
回购组:
Name: whatever,
Format: maven2,
Type: group,
Members: maven-central, own
URL: http://ip:port/nexus/repository/whatever/
我已经为以下存储库安装了 SSL 证书:repo1.maven.org 和 repo.maven.apache.org。
settings.xml 具有以下结构:
<localRepository>${user.home}/.m2/repository</localRepository>
<profiles>
<profile>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>maven-repository</id>
<url>http://ip:port/nexus/repository/whatever/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven-repository-plugin</id>
<name>maven-repository-plugin</name>
<url>http://ip:port/nexus/repository/whatever/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>interval:15</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profiles>
<servers>
<server>
<id>maven-repository</id>
<username>admin</username>
<password>**</password>
</server>
</servers>
问题是我可以使用此 settings.xml 文件下载项目依赖项,但我无法使用 Maven 部署文件,因为出现以下错误:
Failed to deploy artifacts groupId:artifactId:version:jar:version from/to remote-repository(http://ip:port/nexus/repository/whatever): Access denied to: http://ip:port/nexus/repository/whatever/groupId/artifactId/...
,
当 运行 以下部署命令时:
deploy:deploy-file
-Durl=http://ip:port/nexus/repository/own/
-DgeneratePom=false
-DgroupId=groupId
-DartifactId=artifactId
-Dversion=version
-Dpackaging=jar
-Dfile=name.jar
有什么我可以做的吗?我尝试更改存储库以使用托管存储库(自己的)而不是组,我尝试在 settings.xml 文件中添加镜像。
我不得不提一下,用户是默认管理员,具有默认角色(全部)。
我在想这可能是 SSL 入站证书的问题,但在 Nexus 3 中我不知道如何禁用该检查。此外,目前无法手动上传 jars。
编辑:我也尝试添加镜像,但是当我添加镜像时,下载停止工作。 第二次编辑:使用 HTTP 我能够上传文件(使用 CURL)
您需要将“-DrepositoryId=someid”添加到部署文件目标,其中 "someid" 是 settings.xml 文件中具有部署所需凭据的服务器部分的 ID .
<settings>
<servers>
<server>
<id>someid</id>
<username>deployment</username>
<password>deployment123</password>
</server>
</servers>
尽管问题很老,但我记得我有 2 个问题。
我已通过以下方式修复它们:
- 添加和设置正确的代理和正确的非代理主机。
- 添加正确的信任库(和正确的证书)。