持续集成1-maven私服nexus
2018-01-29 本文已影响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>
肥肥小浣熊