nexus搭建maven和npm私服

Nexus Oss 安装配置文档

Nexus Repository Manager OSS 3.x

本文档基于oss3.x版本编写,包含maven私服和npm私服的配置

私服默认账户

admin/admin123

一、Maven私服搭建

1. 配置用户权限(网页操作)

2. 配置settings.xml

增加,

1
2
3
4
5
<server>
<id>ID</id>
<username>USERNAME</username>
<password>PASSWORD</password>
</server>

3. 上传依赖到远程代码库

注意:不能将jar文件或者pom文件指定为本地代码仓库的文件,否则会报错Cannot deploy artifact from the local repository。具体原因待查

- 上传单个依赖到远程代码库
1
2
3
4
#第一种方式
mvn deploy:deploy-file -DgroupId=mysql -DartifactId=mysql-connector-java -Dversion=5.1.45 -Dpackaging=jar -Dfile=/Users/tobbyquinn/Desktop/mysql-connector-java-5.1.45.jar -DrepositoryId=sinosoft -Durl=http://10.1.105.169:8081/repository/maven-releases/
#第二种方式
mvn deploy:deploy-file -Durl=http://10.1.105.169:8081/repository/maven-releases/ -Dfile="/Users/tobbyquinn/Desktop/mysql-connector-java-5.1.45.jar" -DgeneratePom=false -DpomFile="/Users/tobbyquinn/Desktop/mysql-connector-java-5.1.45.pom"

一定记住:url一定要为maven-relases或maven-snapshot,不能为group组如maven-central,否则报错 HTTP.405,PUT method not allowed

- 上传工程所有依赖到本地代码库
  1. 导出pom的所有依赖
1
mvn -Dmdep.copyPom=true dependency:copy-dependencies
  1. 遍历并上传
1
for pom in target/dependency/*.pom; do mvn deploy:deploy-file -Durl=http://10.1.105.169:8081/repository/maven-releases/ -Dfile="${pom%%.pom}.jar" -DgeneratePom=false -DpomFile="$pom" -DrepositoryId=ID;done
- 部署工程到远程代码仓库

修改pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
<distributionManagement>
<repository>
<id>ID</id>
<name>部署release到nexus</name>
<url>http://10.1.105.169:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>ID</id>
<name>部署snapshot到NEXUS</name>
<url>http://10.1.105.169:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
- 从远程代码仓库下载依赖

同上,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<profiles>
<profile>
<id>dev</id>
<repositories>
<repository>
<id>sinosoft</id>
<name>repo-public</name>
<url>http://10.1.105.169:8081/repository/maven-public/</url>
<releases>
<checksumPolicy>warn</checksumPolicy>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<checksumPolicy>warn</checksumPolicy>
<updatePolicy>never</updatePolicy>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>

开启activeProfiles=

二、Npm私服搭建

注意oss 2.x版本不支持对 scoped packages(如@types)的支持

  1. 配置npm-hosted,存储公司内部依赖


  2. 配置npm-proxy,存储外部镜像源依赖

  3. 配置npm-group,将以上两个仓库添加进去即可

  4. 客户端仓库地址填写以下地址即可(如无特殊需求,只需关注group类型)

  5. Realms授权 npm Bearer Token Realm

Npm发布内部依赖到私服

一定要记住发布包到 hosted 仓库位置

  1. 修改镜像源地址
1
npm set registry http://192.168.180.194:8082/repository/npm-public/
  1. 登录
1
2
npm adduser --registry=http://192.168.180.194:8082/repository/npm-private/
npm login --registry=http://192.168.180.194:8082/repository/npm-private/
  1. 发布
1
npm publish --registry=http://192.168.180.194:8082/repository/npm-private/

nexus搭建maven和npm私服
https://blog.pigcanfly.top/2019/03/14/nexus搭建maven和npm私服/
作者
FlyingPigQAQ
发布于
2019年3月15日
许可协议