NEXUS 搭建
1 :下载 http://nexus.sonatype.org/downloads/ 。我现在的是 nexus-webapp-1.7.1.war 版本。
2 :下载 tomcat7.0, 并将 nexus1.7.1.war 放到 apache-tomcat-7.0.0\webapps 目录下,启动 tomcat
3 :打开浏览器,输入 http://localhost:8081/nexus ,看到成功界面。
4 :上传一个第三方的 JAR 包:在左边选择 view/repositories->repositories, 选择右边的 3rd party, 然后在下边的 tabs 里选择 atrifact upload, 然后依次填写需要上传的 jar 包的信息,在 GAV Definition 中选择 GAV Parameters, 根据实际情况填写 group 、 artifact 、 version 等信息, Packaging 也根据实际情况填写,一般选择 jar 即可。然后在下面点击 Select Atrifact(s) to Upload ,选择自己所要上传的 jar 文件,之后点击 Add Aartifact 按钮即可在下面的列表框中看到添加的 jar 包。最后点击 Upload Artifact(s) 按钮即可成功上传 jar 包。
5 :将所有 hosted 类型和 proxy 类型的 repositories 都放在一个 group 类型的 repositories 中,假设地址为 http://localhost:8081/nexus1.7.1/content/groups/public/ 。那样客户端需要连接该 nexus 服务器的时候可以在setting.xml中添加如下代码
<mirror> <id>archiva.default</id> <url>http://localhost:8081/nexus1.7.1/content/groups/public/</url> <mirrorOf>*</mirrorOf> </mirror>
下面是使用中经常遇到的几个问题:
问题 1 : 所依赖的 JAR 包不存在对应的远程 repository ?
可以通过上面第四步解决。
问题 2 : 所依赖的 JAR 包存在自己的远程 repository ,但 NEXUS 无法下载?
很可能是 NEXUS 设置的 proxy 类型的 repository 都未包含该 jar 包。这种情况可以通过增加 proxy 类型的 repository 来解决。步骤如下 : 在 NEXUS 主页左边选择 view/repositories->repositories, 在右边工具栏选择 Add->Proxy Repository, Repository ID 和 Repository Name 可任意填写, Remote Storage Location 必须正确填写你的 jar 包对应的远程 repository 地址,如 http://maven.tigase.org/
问题 3 : 进行了问题 2 的配置,但 NEXUS 服务器不能连接外网怎么办?
有些公司可能需要通过代理上网,那就需要在问题 2 中的配置的下方找到 Overwride Http Proxy Setting(option) 配置项进行配置。
注:
1:虽然通过 pom.xml 和 maven 中的 setting.xml 中也可以通过代理使开发人员的机器直接连接外网下载 jar 包,但这种方式并不推荐,我们应该尽量将这种操作集中到 nexus 进行
2:对于类型为release的proxy代理资源,资源中版本为snapshot的jar包将被阻塞掉,客户端无法获取,如果获取需要新建一个类型为snapshot的proxy代理,指向与前者相同的远程仓库地址
更多见附件