数码资讯
Maven私服(Repository Manager) - Nexus安装和使用(详细过程)
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
Maven私服的安装和使用。
(注:原创文章,引用请注明来自Clement-Xu的博客!)
Maven私服(即Repository Manager)的主要作用:
3、解压: tar -zxvf nexus-3.0.2-02-unix.tar.gz 4、创建用户、赋予权限: # 使用root权限创建一个用户 adduser nexus
# 给nexus用户添加sudo权限 1、给root写的权限 chmod u+w /etc/sudoers 2、编辑/etc/sudoers,在root下添加nexus用户权限 vi /etc/sudoers 添加:nexus ALL=(ALL) ALL 3、保存后撤回写的权限 chmod u-w /etc/sudoers
修改目录所有者: chown -R nexus nexus-3.0.2-02 chgrp -R nexus nexus-3.0.2-02
5、注册为服务: ln -s /opt/app/nexus-3.0.2-02 /opt/app/nexus ln -s /opt/app/nexus/bin/nexus /etc/init.d/nexus cd /etc/init.d chkconfig --add nexus chkconfig --levels 345 nexus on
vi /opt/app/nexus/bin/nexus.rc 添加:run_as_user="nexus"
6、启动服务: service nexus start service nexus status
查看运行的log: tail -f /opt/app/nexus/data/log/nexus.log 看到“Started Sonatype Nexus OSS 3.0.2-02”表示已经启动成功。
7、访问: http://<ip>:8081/ Sign In,缺省账号密码:admin/admin123
注:仓库的不同类型:
项目中使用: pom.xml中添加:
上传第三方包: 准备工作: 1、需要先配置maven中的setting.xml文件:
2、创建一个新的repository专门用于存放第三方的jar包:
万事俱备,可以上传了: (假设第三方JAR包:taobao-sdk-java-auto_1455552377940-20160330.jar,存放在本地目录D:3rd_jars中) mvn deploy:deploy-file ^ -DgroupId= com.aliyun.api ^ -DartifactId= taobao-sdk-java-auto_1455552377940 ^ -Dversion= 2016.03.01 ^ -Dpackaging=jar ^ -Dfile=D:3rd_jars aobao-sdk-java-auto_1455552377940-20160330.jar ^ -Durl=http://<ip>:8081/repository/maven-3rd/ ^ -DrepositoryId=nexus-releases
注:如果是在linux下运行,需要把连接符“^”替换为“” 验证结果:在Nexus Search中搜索是否已经上传成功。
上传成功后,修改pom.xml中的dependency,指向私服: <dependency> <groupId> com.aliyun.api</groupId> <artifactId> taobao-sdk-java-auto_1455552377940</artifactId> <version> 2016.03.01</version> </dependency>
Deploy jar项目到私服中: 1、pom.xml中的配置:
Maven私服(即Repository Manager)的主要作用:
- 减少从远方仓库下载的次数,节省带宽、提高maven build的效率
- 减少对远方仓库的依赖,确保maven build的稳定性
- 方便内部人员发布artifact
- 方便存放官方仓库中没有的第三方依赖包
3、解压: tar -zxvf nexus-3.0.2-02-unix.tar.gz 4、创建用户、赋予权限: # 使用root权限创建一个用户 adduser nexus
# 给nexus用户添加sudo权限 1、给root写的权限 chmod u+w /etc/sudoers 2、编辑/etc/sudoers,在root下添加nexus用户权限 vi /etc/sudoers 添加:nexus ALL=(ALL) ALL 3、保存后撤回写的权限 chmod u-w /etc/sudoers
修改目录所有者: chown -R nexus nexus-3.0.2-02 chgrp -R nexus nexus-3.0.2-02
5、注册为服务: ln -s /opt/app/nexus-3.0.2-02 /opt/app/nexus ln -s /opt/app/nexus/bin/nexus /etc/init.d/nexus cd /etc/init.d chkconfig --add nexus chkconfig --levels 345 nexus on
vi /opt/app/nexus/bin/nexus.rc 添加:run_as_user="nexus"
6、启动服务: service nexus start service nexus status
查看运行的log: tail -f /opt/app/nexus/data/log/nexus.log 看到“Started Sonatype Nexus OSS 3.0.2-02”表示已经启动成功。
7、访问: http://<ip>:8081/ Sign In,缺省账号密码:admin/admin123
注:仓库的不同类型:
- proxy:代理第三方仓库的
- hosted:存储本地上传的组建和资源
- group:一般包含多个proxy仓库和hosted仓库,在项目中一般引入这种类型的仓库就可以下载到proxy和hosted中的包
项目中使用: pom.xml中添加:
<repositories> <repository> <id>nexus</id> <name>Nexus Repository</name> <url>http://<ip>:8081/repository/maven-public/</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>Nexus Plugin Repository</name> <url>http://<ip>:8081/repository/maven-public/</url> </pluginRepository> </pluginRepositories>
上传第三方包: 准备工作: 1、需要先配置maven中的setting.xml文件:
<server> <id>nexus-releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>admin123</password> </server>
2、创建一个新的repository专门用于存放第三方的jar包:
- admin登录nexus,Repositories -> Create repository -> maven2 (hosted)
- 填入name:maven-3rd
- 选择Blob store:default
- 选择Deployment policy:Allow redeploy
- 点击:Create repository
- 进入Repositories -> maven-public
- 在Group中,加入maven-3rd
- 点击:Save
万事俱备,可以上传了: (假设第三方JAR包:taobao-sdk-java-auto_1455552377940-20160330.jar,存放在本地目录D:3rd_jars中) mvn deploy:deploy-file ^ -DgroupId= com.aliyun.api ^ -DartifactId= taobao-sdk-java-auto_1455552377940 ^ -Dversion= 2016.03.01 ^ -Dpackaging=jar ^ -Dfile=D:3rd_jars aobao-sdk-java-auto_1455552377940-20160330.jar ^ -Durl=http://<ip>:8081/repository/maven-3rd/ ^ -DrepositoryId=nexus-releases
注:如果是在linux下运行,需要把连接符“^”替换为“” 验证结果:在Nexus Search中搜索是否已经上传成功。
上传成功后,修改pom.xml中的dependency,指向私服: <dependency> <groupId> com.aliyun.api</groupId> <artifactId> taobao-sdk-java-auto_1455552377940</artifactId> <version> 2016.03.01</version> </dependency>
Deploy jar项目到私服中: 1、pom.xml中的配置:
<distributionManagement> <repository> <id>nexus-releases</id> <name>Nexus Release Repository</name> <url>http://<ip>:8081/repository/maven-releases/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://<ip>:8081/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>注意:
- ID名称必须要与settings.xml中Servers配置的ID名称保持一致。
- 项目版本号中有SNAPSHOT标识的,会发布到Nexus Snapshots Repository, 否则发布到Nexus Release Repository,并根据ID去匹配授权账号。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。