Nexus3.X版本如何上传Artifact

最近部署了一个Nexus OSS 3.2的Maven仓库 但是最新版本取消了手动上传的页面

解决方案

几经百度之后 找到了方法 可以使用 mvn deploy命令进行上传操作

新建Hosted仓库

在Repositories下新建一个Hosted的仓库 或者直接用自带的仓库

配置账号密码

找到Maven的安装目录 打开 %M2_HOME%/config/settings.xmlservers 内添加一个服务账户配置

1
2
3
4
5
<server>
<id>id</id> <!--上传时用的ID-->
<username>user</username> <!--Maven的用户名-->
<password>pwd</password> <!--Maven的密码-->
</server>

使用命令上传

注意: 请不要在本地Repo目录直接执行 要复制到非Repo目录才可以 不然会报错 Cannot deploy artifact from the local repository
注意: 请不要在本地Repo目录直接执行 要复制到非Repo目录才可以 不然会报错 Cannot deploy artifact from the local repository
注意: 请不要在本地Repo目录直接执行 要复制到非Repo目录才可以 不然会报错 Cannot deploy artifact from the local repository

  • 指定绝对的坐标

    1
    2
    3
    4
    5
    6
    7
    8
    mvn deploy:deploy-file \
    -DgroupId=com.aliyun.oss \
    -DartifactId=aliyun-sdk-oss \
    -Dversion=2.2.3 \
    -Dpackaging=jar \
    -Dfile=aliyun-sdk-oss-2.2.3.jar \
    -Durl=http://192.168.0.14:8081/repository/maven-releases/ \
    -DrepositoryId=id
  • 指定POM文件

    1
    2
    3
    4
    5
    mvn deploy:deploy-file \
    -DpomFile=aliyun-sdk-oss-2.2.3.pom \
    -Dfile=aliyun-sdk-oss-2.2.3.jar \
    -Durl=http://192.168.0.14:8081/repository/maven-releases/ \
    -DrepositoryId=id

命令参数说明

1
2
3
4
5
6
7
8
9
10
11
12
13
mvn deploy:deploy-file -Durl=file://C:\m2-repo \
-DrepositoryId=some.id \
-Dfile=your-artifact-1.0.jar \
[-DpomFile=your-pom.xml] \
[-DgroupId=org.some.group] \
[-DartifactId=your-artifact] \
[-Dversion=1.0] \
[-Dpackaging=jar] \
[-Dclassifier=test] \
[-DgeneratePom=true] \
[-DgeneratePom.description="My Project Description"] \
[-DrepositoryLayout=legacy] \
[-DuniqueVersion=false]
  • 官方文档
  • groupId, artifactId, version, packaging 对应POM文件的坐标 请自行百度
  • file 指定文件的地址
  • url 指定服务器的地址
  • repositoryId 配置账号密码中的ID

最后 在POM中就可以直接使用这个包了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<repositories>
<repository>
<id>local-repo</id>
<url>http://127.0.0.1:8081/repository/maven-releases/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<type>jar</type>
<version>2.2.3</version>
</dependency>
</dependencies>