美文网首页java后端集群化专题
持续集成1-maven私服nexus

持续集成1-maven私服nexus

作者: 江江的大猪 | 来源:发表于2018-01-29 16:17 被阅读29次
    • nexus2各版本对jdk的要求看这里(没有使用nexus3版本),这里下载的nexus-2.14.5-02-bundle
    • nexus-2.14.5-02-bundle/nexus-2.14.5-02/conf下的nexus.properties中可以修改端口(默认8081),其他设置一般不用改(jar包存放目录什么的)
    application-port=8081 # 默认8081端口
    application-host=0.0.0.0 # 默认任意ip都可以访问
    nexus-webapp=${bundleBasedir}/nexus # 工程目录是nexus-2.14.5-02-bundle/nexus-2.14.5-02/nexus,基本不改
    nexus-webapp-context-path=/nexus # url为ip:port/nexus
    
    # Nexus section
    nexus-work=${bundleBasedir}/../sonatype-work/nexus 
    runtime=${bundleBasedir}/nexus/WEB-INF
    
    # orientdb buffer size in megabytes
    storage.diskCache.bufferSize=4096
    
    • nexus不推荐使用root权限启动,非要用的话可以nexus-2.14.5-02/bin目录下修改nexus脚本,RUN_AS_USER=root

    • nexus脚本控制服务的启动关闭(The startup script nexus supports the common service commands start, stop, restart , status, console and dump.)

    • 默认账户密码:admin/admin123.

    • 登陆之后可以设置administration中的server添加邮箱服务地址。因为qq邮箱限制了其他客户端登录,所以要选ssl模式,password是从qq邮箱获得的授权码。设置这个主要是为了找回密码(新版本在登录时不能找回密码了)

      设置邮箱服务
    • nexus默认有3个用户,admin、deployment、anonymous,可以将admin和deployment的邮箱修改为自己的

    • 仓库组(group)管理多个仓库

      • hosted类型包含三个库,3rd party存放从公共库获取不到的构件,例如买来的商用工程组件。releases和snapshots是发布内部项目使用的库
      • proxy类型库代理公共的远程仓库
      • virtual类型用于适配nexus1,一般只用hosted和proxy
    • 设置proxy的库使用远程索引,点到库上的configuration中设置,将central和Apache snapshots都按下图设置


      image.png
    • 修改maven的setting.xml,关于maven的setting.xml和pom的配置说明可以看这里

        <localRepository>/Users/laifuzhi/.m2/repository</localRepository>
        <servers>
            <server>
                <id>snapshots</id>
                <username>admin</username>
                <password>admin123</password>
            </server>
            <server>
                <id>releases</id>
                <username>admin</username>
                <password>admin123</password>
            </server>
        </servers>
    
        <profiles>
            <profile>
                <id>MyNexus</id>
                <repositories>
                    <repository>
                        <id>MyNexus</id>
                        <url>http://127.0.0.1:8081/nexus/content/groups/public</url>
                        <releases>
                            <enabled>true</enabled>
                        </releases>
                        <snapshots>
                            <enabled>true</enabled>
                        </snapshots>
                    </repository>
                </repositories>
                <pluginRepositories>
                    <pluginRepository>
                        <id>MyNexus</id>
                        <url>http://127.0.0.1:8081/nexus/content/groups/public</url>
                        <releases>
                            <enabled>true</enabled>
                        </releases>
                        <snapshots>
                            <enabled>true</enabled>
                        </snapshots>
                    </pluginRepository>
                </pluginRepositories>
            </profile>
        </profiles>
    
        <activeProfiles>
            <activeProfile>MyNexus</activeProfile>
        </activeProfiles>
    
    
    • 在项目的pom中添加如下,代表当执行mvn deploy的时候,SNOPSHOT和RELEASES版本的上传库

    需要注意的是setting.xml中server里的id,和pom中repository里的id必须一致

    <distributionManagement>
        <repository>
            <id>releases</id>
            <name>MyReleases</name>
            <url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>MySnapshots</name>
            <url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
            <uniqueVersion>false</uniqueVersion>
        </snapshotRepository>
    </distributionManagement>
    
    肥肥小浣熊

    相关文章

      网友评论

        本文标题:持续集成1-maven私服nexus

        本文链接:https://www.haomeiwen.com/subject/myaxzxtx.html