• Maven私服(Repository Manager)


    Maven私服的安装和使用。
    (注:原创文章,引用请注明来自Clement-Xu的博客!)
    Maven私服(即Repository Manager)的主要作用:
    • 减少从远方仓库下载的次数,节省带宽、提高maven build的效率
    • 减少对远方仓库的依赖,确保maven build的稳定性
    • 方便内部人员发布artifact
    • 方便存放官方仓库中没有的第三方依赖包
    Maven官网关于Repository Manager的介绍:https://maven.apache.org/repository-management.html
    安装和启动:
    2、下载nexus:
    wget https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3.0.2-02-unix.tar.gz
     
     
    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、访问:
    Sign In,缺省账号密码:admin/admin123
     
    注:仓库的不同类型:
    • proxy:代理第三方仓库的
    • hosted:存储本地上传的组建和资源
    • group:一般包含多个proxy仓库和hosted仓库,在项目中一般引入这种类型的仓库就可以下载到proxy和hosted中的包
     
    项目中使用:
    pom.xml中添加:
    [html] view plain copy
     
    1. <repositories>  
    2.     <repository>  
    3.         <id>nexus</id>  
    4.         <name>Nexus Repository</name>  
    5.         <url>http://<ip>:8081/repository/maven-public/</url>  
    6.     </repository>  
    7. </repositories>  
    8. <pluginRepositories>  
    9.     <pluginRepository>  
    10.         <id>nexus</id>  
    11.         <name>Nexus Plugin Repository</name>  
    12.         <url>http://<ip>:8081/repository/maven-public/</url>  
    13.     </pluginRepository>  
    14. </pluginRepositories>  
     
    上传第三方包:
    准备工作:
    1、需要先配置maven中的setting.xml文件:
    [html] view plain copy
     
    1. <server>  
    2.     <id>nexus-releases</id>  
    3.     <username>admin</username>  
    4.     <password>admin123</password>  
    5. </server>  
    6. <server>  
    7.     <id>nexus-snapshots</id>  
    8.     <username>admin</username>  
    9.     <password>admin123</password>  
    10. </server>  
    2、创建一个新的repository专门用于存放第三方的jar包:
    1. admin登录nexus,Repositories -> Create repository -> maven2 (hosted)
    2. 填入name:maven-3rd
    3. 选择Blob store:default
    4. 选择Deployment policy:Allow redeploy
    5. 点击:Create repository
    3、把新创建的repository加入maven-public group中:
    1. 进入Repositories -> maven-public
    2. 在Group中,加入maven-3rd
    3. 点击: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中的配置:
    [html] view plain copy
     
    1. <distributionManagement>    
    2.     <repository>    
    3.         <id>nexus-releases</id>    
    4.         <name>Nexus Release Repository</name>    
    5.         <url>http://<ip>:8081/repository/maven-releases/</url>    
    6.     </repository>    
    7.         <snapshotRepository>    
    8.         <id>nexus-snapshots</id>    
    9.         <name>Nexus Snapshot Repository</name>    
    10.         <url>http://<ip>:8081/repository/maven-snapshots/</url>    
    11.     </snapshotRepository>    
    12. </distributionManagement>   
    注意:
    • ID名称必须要与settings.xml中Servers配置的ID名称保持一致。
    • 项目版本号中有SNAPSHOT标识的,会发布到Nexus Snapshots Repository, 否则发布到Nexus Release Repository,并根据ID去匹配授权账号。
    2、生成jar包并上传:
    > mvn deploy
  • 相关阅读:
    Go语言:如何解决读取不到相对路径配置文件问题
    Go组件学习:如何读取ini配置文件
    PMP学习笔记(一)
    SpringBoot安装与配置
    Homebrew中国镜像安装与配置
    Nginx日志常见时间变量解析
    openresty如何完美替换nginx
    Golang防止多个进程重复执行
    Windows 10 中CPU虚拟化已开启,但是docker无法运行
    彻底理解Python多线程中的setDaemon与join【配有GIF示意】
  • 原文地址:https://www.cnblogs.com/kunpengit/p/9166178.html
Copyright © 2020-2023  润新知