`

初学maven(3)-使用nexus替代artifactory作为maven私服

阅读更多

之前看到过一些Nexus的介绍,由于刚开始接触maven时使用的私服是artifactory,因此没有太在意。今天想着既然Nexus能有胆量出来混,应该有点真本事才是,看了一下nexus的安装介绍,挺简单的,试试无妨。因此装上小试了一下,结果喜出望外,nexus的表现非常不错,尤其是在开启远程索引之后,简直太方便了。

    于是决定放弃artifactory改而使用nexus作为自己的maven私服。恩,惭愧,颇有点喜新厌旧的味道,artifactory才装上来没有几天,就惨遭抛弃......

    整理了一下,全过程记录如下:

1. 首先下载Nexus
    从官网http://nexus.sonatype.org/download.html下载下载最新版本,因为是在windows上安装,因此下载的是zip版本,大小大概是16m。
   
2. 安装
    简单解压缩下载的zip包到安装目录就可以了。
    可执行文件在%nexus安装目录%\nexus-webapp-1.0.0\binjsw\windows-x86-32下:
        InstallNexus.bat/UninstallNexus.bat是安装/卸载nexus为windows service,如果需要设置nexus为开机自动启动就可以安装为windows service然后设置启动方式为自动。
        Nexus.bat是直接在命令行中启动Nexus,如果不想安装Nexus为windows service,可以用这个文件来手工控制Nexus的启动退出。
       
       
3. 配置nexus

    首先登录,默认地址http://localhost:8081/nexus/,默认用户名密码为admin/admin123.
   
    最重要的一件事情就是开启远程索引下载,索引这个功能实在是太好用了。
   
    nexus默认是关闭远程索引下载功能的,主要是担心会造成对服务器的巨大负担,需要我们手工开启。
   
    开启的方式:
        点击Administration菜单下面的Repositories,将这三个仓库Apache Snapshots,Codehaus Snapshots,Maven Central的Download Remote Indexes修改为true。然后在这三个仓库上分别右键,选择Re-index,这样Nexus就会去下载远程的索引文件。
       
4. 配置maven
    要让maven使用nexus作为私服,需要做一些设置,使用和原来设置artifactory相似的方法。修改~/.m2/settings.xml.
   
    增加nexus的profile:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->     < profile >
      
< id > nexus </ id >
      
< repositories >
        
< repository >
            
< id > nexus </ id >
            
< name > local private nexus </ name >
            
< url > http://localhost:8081/nexus/content/groups/public </ url >
            
< releases >< enabled > true </ enabled ></ releases >
            
< snapshots >< enabled > false </ enabled ></ snapshots >
        
</ repository >
        
< repository >
            
< id > nexus </ id >
            
< name > local private nexus </ name >
            
< url > http://localhost:8081/nexus/content/groups/public-snapshots </ url >
            
< releases >< enabled > false </ enabled ></ releases >
            
< snapshots >< enabled > true </ enabled ></ snapshots >
        
</ repository >
      
</ repositories >
      
< pluginRepositories >
        
< pluginRepository >
            
< id > nexus </ id >
            
< name > local private nexus </ name >
            
< url > http://localhost:8081/nexus/content/groups/public </ url >
            
< releases >< enabled > true </ enabled ></ releases >
            
< snapshots >< enabled > false </ enabled ></ snapshots >
        
</ pluginRepository >
        
< pluginRepository >
            
< id > nexus </ id >
            
< name > local private nexus </ name >
            
< url > http://localhost:8081/nexus/content/groups/public-snapshots </ url >
            
< releases >< enabled > false </ enabled ></ releases >
            
< snapshots >< enabled > true </ enabled ></ snapshots >
        
</ pluginRepository >
       
</ pluginRepositories >
    
</ profile >

 
    修改activeProfiles为:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->       < activeProfiles >
        
< activeProfile > nexus </ activeProfile >
      
</ activeProfiles >

     
5. 为nexus增加Artifact
    有些特殊的Artifact无法从maven官网仓库中下载,比如sun的一些包,只好自己自行下载后添加到私服中。
    在nexus中我选择将这些Artifact上传到默认安装就存在的仓库3rd Party中,右击仓库名,选择Upload Artifact。
   
6. 在eclipse中使用索引功能
    原来试过,使用artifactory私服也可以使用Artifact的索引功能,但是由于不知道怎么设置远程仓库的index,我只会设置
    当前artifactory私服已有的Artifact的索引,对于还没有导入到artifactory私服的Artifact就没有办法索引了,很不方便,
    毕竟刚开始使用maven时,所有用到的Artifact都是本地和私服没有而需要到远程仓库取的。
   
    nexus中可以很方便的得到远程仓库的Artifact的索引,在上面“3. 配置nexus”就介绍过。下面介绍如何在eclispe里面
    设置和使用索引功能:
    1) 打开Maven Indexes 的eclispe view
        在eclispe中选择window -> show view -> other ... -> Maven -> Maven Indexes
    2) 添加nexus的index
        右键菜单中选"add index", 在弹出的"Add Respository index"窗口中填入:
            Repository URL: http://localhost:8081/nexus/content/groups/public
            Repository Id: nexus
            Index Update URL: 放空,暂时还不知道该怎么填
        加入后eclispe会自动load一次index信息,然后就可以在新加入的index下可以拉出极大数量的Artifact信息。
    3) 测试一下使用
        找个pom.xml文件,右键 -> Add Dependency, 然后填入一个关键词,比如我填入mina,马上填出和mina相关的一些
        选择,我找到apache mina,双击最新一个版本。会自动在pom.xml文件中增加以下内容:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->         < dependency >
            
< groupId > org.apache.directory.mina </ groupId >
            
< artifactId > mina-core </ artifactId >
            
< version > 0.9.5 </ version >
        
</ dependency >


        然后Maven自动下载jar包,再将jar包加入项目的build path,全程自动化处理,真是爽啊。

7. 为nexus增加新的proxy  repository
        方法很简单,administration -> Repositories -> add -> proxy,填写后保存即可。但是要注意,nexus不会自动将新加入的repository添加到group中,而我们一般喜欢直接使用默认的"public repository" group, 比如前面我在maven的profile中就只设置了这一个URL: http://localhost:8081/nexus/content/groups/public 。因此需要手工修改"public repository" group的设置,将刚才添加的proxy  repository加到组中。
        推荐的repository有:
                1) jboss         http://repository.jboss.com/maven2/
                2) sun            http://download.java.net/maven/2/
                3)k-int           http://developer.k-int.com/maven2/
                        加入这个纯粹是因为它有sun的jmxri/jmxtools这些Artifact,强烈鄙视sun,自己的官方repository居然没有。
                4)sonatype        http://repository.sonatype.org/content/groups/public/
8. 总结
    很明显,nexus无论是在界面,功能,操作上,都比artifactory强大的多。
    因此推荐大家使用nexus替代artifactory作为maven私服。
   
updates:
1.  2008.11.28 
由于公司升级操作系统,告别老旧不堪的windows2000升级到vista,因此重新安装了nexus. 新版本的nexus似乎增加了不少小的功能比如对remote index的支持,具体没有深究,不过能不断更新实在是很令人欣慰。以后就打算用nexus了。

分享到:
评论

相关推荐

    eclipse-maven3-plugin

    **eclipse-maven3-plugin** 是一个专门为 Eclipse IDE 设计的插件,它允许开发者在 Eclipse 开发环境中无缝集成 Maven 构建工具。Maven 是一个项目管理和综合工具,广泛用于 Java 应用程序的构建、依赖管理和项目...

    apache-maven-3.6.3-bin

    apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-...

    Maven exec-maven-plugin:执行外部命令的实践指南

    本文详细介绍了exec-maven-plugin的基本概念、配置方法、执行简单和系统脚本、捕获命令输出、条件执行、并发执行、使用环境变量、错误处理、高级配置、使用案例以及局限性。通过这些知识点,读者可以更加自信地在...

    eclipse-maven3-plugin Maven插件离线安装包

    1. 在你的 eclipse 安装的根目录下创建两个文件夹:links,plugins(名字可以随便取),我的这两个文件夹位于:path=D:/Development/eclipse-JavaEE/eclipse(作为参考,下面用到) 2. eclipse-maven3-plugin.7z ...

    ECLIPSE MAVEN3插件文件(eclipse-maven3-plugin工具)

    ECLIPSE MAVEN3插件文件(eclipse-maven3-plugin工具)

    apache-maven-3.8.6-bin.tar.tz--test

    apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-...

    maven3-plugin-3.0.1-sources.jar

    maven3-plugin-3.0.1-sources.jar

    apache-maven-3.8.6.zip

    apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-...

    maven私服搭建-nexus的部署

    在本文中,我们将介绍如何搭建一个 Maven 私服,使用 Nexus 作为私服解决方案,并详细介绍 Nexus 的安装、配置和使用。 一、Nexus 简介 Nexus 是一个由 Sonatype 开发的 Maven 私服解决方案,它提供了强大的仓库...

    linux-maven-maven私服nexus安装文档

    Linux Maven Maven私服Nexus安装文档主要涵盖了在CentOS操作系统上安装和配置Maven以及搭建Maven私有仓库Nexus的详细步骤。以下是整个过程的详细说明: 1. **安装Maven** - **确认安装源**:首先,你需要检查你的...

    手动搭建maven私服-安装配置nexus 3.4教程

    手动搭建maven私服是指使用nexus 3.4安装配置一个maven私服,实现公司或个人项目的构件管理。下面将详细介绍手动搭建maven私服的过程。 一、安装nexus 3.4 首先下载nexus 3.4安装包,并将其解压到指定目录下。解压...

    Maven全版本资源,Maven 3.0.5-3.8.5,每个版本包含4个文件,Maven3全资源打包下载,Maven全集

    apache-maven-3.0.5 apache-maven-3.1.1 apache-maven-3.2.5 apache-maven-3.3.9 apache-maven-3.5.4 apache-maven-3.6.3 apache-maven-3.8.5 每个版本包含4个文件: apache-maven-3.8.5-bin.tar.gz apache-maven-...

    下载慢?给你apache maven 3.x.x所有Linux, Windows版本下载的百度网盘链接

    apache-maven-3.0.4-bin.tar.gz apache-maven-3.0.4-bin.zip apache-maven-3.0.5-bin.tar.gz apache-maven-3.0.5-bin.zip apache-maven-3.1.0-bin.tar.gz apache-maven-3.1.0-bin.zip apache-maven-3.1.1-bin.tar.gz...

    最新Maven-apache-maven-3.8.1-Repository-配置好的

    如果需要使用企业内部的Nexus或Artifactory仓库,可以在`settings.xml`中添加对应的repository配置。 4. **验证安装**: 安装完成后,打开命令行输入`mvn -version`,如果正确显示Maven版本信息,表明配置成功。 **...

    maven3-plugin-3.0.0-1-sources.jar

    maven3-plugin-3.0.0-1-sources.jar

    maven jar包

    maven-aether-provider-3.2.1-sources.jar maven-antrun-plugin-1.3.jar maven-archiver-2.2.jar maven-artifact-3.2.1-sources.jar maven-assembly-plugin-2.2-beta-5.jar maven-bundle-plugin-1.0.0.jar maven-...

    maven-compiler-plugin-3.8.0-source-release插件

    `maven-compiler-plugin-3.8.0-source-release` 版本是 Maven 编译插件的一个特定版本,该版本包含了对 Maven 3.x 系列的支持。这个插件的主要任务包括: 1. **源代码编译**:默认使用 JDK 的 `javac` 编译器进行 ...

    maven资源 apache-maven-3.3.9-bin.zip

    每个阶段都可以通过特定的插件来执行,例如,`maven-compiler-plugin`用于编译源代码,`maven-surefire-plugin`负责运行单元测试。Maven通过使用Project Object Model (POM)文件来描述项目信息,包括依赖、构建配置...

Global site tag (gtag.js) - Google Analytics