nexus 的使用及maven的配置
一、nexus的安装
1.下载nexus(点解这里)
2.下载后解压文件,将解压后的nexus文件放在你自己想要的地方
3.配置环境变量(和配置java的环境变量一样)
4.安装和启动nexus
由于我已经安装和启动过nexus,所以有错误信息提示
5.启动成功后,在浏览器输入http://localhost:8081/nexus/就会进入nexus的操作界面
我们也可以在conf/nexus.properties修改端口
6.用admin登录成功后,可以看到如下界面
我们可以看见type有多重类型,这里我们介绍三种:
- hosted,本地仓库(也叫宿主仓库),通常我们会部署自己的构件到这一类型的仓库或则是第三方的包(如:oracel的)。
- proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
- group,仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组。
二、使用nexus的管理界面上传jar包
三、创建自己的私有仓库
四、创建权限
五、创建角色
五、创建用户
六、关联自己的私有仓库
1.在settings.xml文件中添加镜像文件关联
<mirrors> <mirror> <id>nexus-releases</id> <mirrorOf>*</mirrorOf> <url>http://localhost:8081/nexus/content/groups/public</url> </mirror> <mirror> <id>nexus-snapshots</id> <mirrorOf>*</mirrorOf> <url>http://localhost:8081/nexus/content/repositories/apache-snapshots/</url> </mirror> </mirrors>
2.在settings.xml文件中设置profile
</profiles> <profile> <id>nexusTest</id> <repositories> <repository> <id>local-nexus</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> </profile> </profiles>
<activeProfiles> <!--激活id为nexusTest的profile-->
<activeProfile>nexusTest</activeProfile>
</activeProfiles>
七、发布自己的快照版本到私有仓库
这里我们测试将的nexusTest.jar发布到myRepository仓库中
1.在pom.xml中添加
<distributionManagement> <!--自己创建的库--> <repository> <id>myReposioryT</id><!--这里的id与角色中配置的id要一致--> <name>my test reposiory</name> <url> http://localhost:8081/nexus/content/repositories/myRepository</url> </repository> <!--snapshots库--> <snapshotRepository> <id>nexus-snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> <!--<repository> <id>nexus-releases</id> <name>Nexus Release Repository</name> <url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url> </repository> --> </distributionManagement>
1.在settings.xml文件中添加
<servers>
<server>
<id>myReposioryT</id> <!-- 这里的id要与pom.xml中的一致 表示使用该账号上传jar到自己建立的my test reposiory仓库中-->
<username>testAdmin</username>
<password>123456</password>
</server>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
使用maven的package deploy 命令就可以将自己的项目打成jar包发布到自己的私有仓库。
注意,要发布jar包,需要将修改 <packaging>war</packaging>为 <packaging>jar</packaging>
附录:
1.如果使用idea,则有很好的工具帮我们操作
2.如果我们版本号后面有后最SNAPSHOT,如<version>1.1-SNAPSHOT</version>
我们即使是发布到release版本,nexus还是会自动认为是snapshot版本。处理的方式有两种。
2.1直接去掉版本号后面的SNAPSHOT后缀,如:<version>1.1</version>
2.2使用如下配置
//头部版本号的配置 <version>${project.release.version}</version> //添加properties <properties> <project.release.version>1.1-SNAPSHOT</project.release.version> </properties> <profiles> <profile> <id>myRelease</id> <!--id自己随便取 使用mvn命令发布的时候要使用到这个id--> <properties> <project.release.version>1.1</project.release.version> </properties> </profile> </profiles>
发布的时候使用命令 mvn deploy -P myRelease (myRelease是profile取得id值)
这样发布的时候会使用我们在profile中定义的properties中的变量值去替换<version></version>中的值