之前搭了个maven私服,接下来则要充分利用这个私服的优势上传自己的jar包了。
我们先在nexus上创建一个用来上传jar包的角色,并通过此角色创建若干帐号用来给开发者上传包。如图是我自己的配置:
在这里面包含4项权限,repository-view代表的是repository的使用权限,add,edit,read即可构成完整的上传权限。通过此role创建若干user:在这里我给我自己创建了一个uploaduser用来上传jar包。
注:为什么不用admin账户?因为上传jar包并不需要admin权限,而admin用户包含的全部的权限,不仅有repository的view和admin还有许多其他权限,并且在settings中密码明文存储,并不安全,而在我这里创建的用户虽然有edit权限,但是只能操作自定义的jar包,对没有redeploy的仓库依旧没什么卵用。所以相对安全可控。
之后在.m2/settings中加入两条server:
<server> <id>nexus-snapshotid> <username>uploaduserusername> <password>mimapassword> server> <server> <id>nexus-releaseid> <username>uploaduserusername> <password>mimapassword> server>
注意,id这玩意可以随便起名,但是要记住,因为pom文件需要用到,在这里指定的用户名密码,在pom文件里指定id对应的仓库url,这样可以连接到仓库。
在需要的jar包内加入如下配置:
<distributionManagement> <repository> <id>nexus-releaseid> <url>http://192.168.xx.xxx:18081/repository/maven-releases/url> repository> <snapshotRepository> <id>nexus-snapshotid> <url>http://192.168.xx.xxx:18081/repository/maven-snapshots/url> snapshotRepository>
这里的两个url可以在nexus中点击对应的库直接复制过来,不用自己敲进去。
如果你需要编译scala工程,在pom中加入:
<plugin> <groupId>net.alchim31.mavengroupId> <artifactId>scala-maven-pluginartifactId> <version>3.2.2version> <executions> <execution> <id>compile-scalaid> <phase>compilephase> <goals> <goal>add-sourcegoal> <goal>compilegoal> goals> execution> <execution> <id>test-compile-scalaid> <phase>test-compilephase> <goals> <goal>add-sourcegoal> <goal>testCompilegoal> goals> execution> executions> plugin>
这样就可以了,之后需要确认下本地工程的groupid,artifactid和版本:
<groupId>guinaigroupId>
<artifactId>guinaiartifactId> <version>0.0.1version>
打包上传:
mvn deploy 完成!
emmmmm.....
如果你在eclipse下,右键pom文件->debug as -> maven build->在goals里填deploy,完成!
然后去nexus3里搜你自己的包吧,可以发现已经上传到release库里了如果是snapshot就在snapshot库里