Nexus 有两种安装包,包含Jetty容器的Bundle包;不包含Web容器的War包。
Bundle包自带Jetty容器,可直接启动,解压缩到指定路径
访问相对应的链接即可: http://127.0.0.1:8081/nexus
端口冲突的解决方案为: /conf/plexus.properties 文件,application-port 属性,修改即可,重启生效。
下载Maven仓库索引的方式,此处仅介绍自动下载索引的方式:
索引文件的路径是在
%Nexus_Home%\sonatype-work\nexus\indexer\central-ctx 部分的
1: 打开Repositories标签,选中远程仓库并打开Configuration,将Download Romote Location 设置为true,保存;
2: 在远程仓库上右键选择Update Index,Nexus会自动建立一条任务计划;一般远程仓库都比较大,构建会比较多,索引文件会很大,像http://repo1.maven.org/maven2/就有几百M,因此需要的时间就比较长。
2.1可以进入Scheduled Tasks查看任务的执行情况,当执行完成时,远程仓库的索引就已经建立完毕了。
3.这个自动下载过程是一个漫长的等待,等任务消失后说明已经下载成功,这时可以在下面页面中点击center
接着点击Browse Index如果已经有了,说明下载完毕。
上面说的这些更新方式,速度太慢,而且由于国内的网络问题,有些环境下是直接可以忽略上面的更新缓存方式的,下面介绍一中离线更新的方式(GXPT 环境搭建):
访问 http://repo.maven.apache.org/maven2/.index/ 下载中心仓库最新版本的索引文件,我们只需要下载如下两个文件即可,这两个文件一般都处于列表的最下面,:
nexus-maven-repository-index.properties
nexus-maven-repository-index.gz
接下来就是解压缩这两个文件,解压方式比较特别,下载一个jar包 indexer-cli-5.1.1.jar 将这三个文件置于同一个文件路径下,运行
java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.gz -d indexer
可以发现indexer文件夹下出现了很多文件,将这些文件放置到{nexus-home}/sonatype-work/nexus/indexer/central-ctx目录下,重新启动nexus。
PS:
知乎上面有这样的一种解释方案:
1:第一次update时大概会下载100多MB的东西,可能要等上10几分钟。
首先可以看下central-ctx文件夹大小(<nexus>/sonatype-work/nexus/indexer/central-ctx),我的大概有962MB,如果文件夹大小很小的话说明还没有下载完。
下载过程中,临时文件是放在tmp目录中的(<nexus>/sonatype-work/nexus/tmp),
看看tmp目录下有没有类似这样的文件夹:
- nexus-maven-repository-index.gz7642565033310927878.dir
- central-tmp-ctx8523230095898301314.tmp
有就表明正在下载中,下载过程中这个文件夹大小会达到2个多GB,下载完会自动删除。
如果实在不行,可以把整个nexus工作目录(<nexus>/sonatype-work/nexus/)删除再试。
Maven 项目 pom.xml 部分,配置Nexus仓库
<!-- Nexus 私服配置 -->
<!-- <repositories>
<repository>
<id> nexus</id>
<name> Nexus</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id> nexus</id>
<name> Nexus</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories> -->
本地进行测试,pom.xml里面增加代码段(如下),查找相对应的 Nexus路径&&本地Mmaven路径,能够发现相对应的文件时下载到私服里面,之后下载到本地存储的。
<dependency>
<groupId >com.googlecode.guice-junit4 </groupId>
<artifactId >guice-junit4-spring-transactional </artifactId>
<version >0.2 </version>
</dependency>