`
MauerSu
  • 浏览: 494459 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Maven3实战笔记09Maven的私服-Nexus常用功能

 
阅读更多
源:http://suhuanzheng7784877.iteye.com/blog/1073768
评:后面内容发布 本地jar跟 更新nexus索引 很有用
1.  前言
其实介绍Maven私服的资料已经很多了,《Maven权威指南》、许晓斌老师的Blog都详细介绍了常用私服——Nexus的功能,在此为何笔者还要写一下呢,一个是笔者写的是常用的功能,本身Maven这东西就是使用层次,若不是研究Maven内核、扩展Maven,大可不必细究源代码,有那时间,还不如看看Mina的源代码。这里只是说说笔者常用到的私服搭建、使用。二就是总结出来也好给健忘的自己留个备份。三就是确实私服是公司内部Maven项目经常需要的东东,不总结一下,不足以体现出重视。Nexus是常用的私用Maven服务器,一般是公司内部使用。下载地址是http://nexus.sonatype.org/downloads/。笔者用的是nexus-oss-webapp-1.9.1.1-bundle版本,内部嵌入了Jetty。先安装、再启动。启动脚本在{nexus_HOME}\bin\jsw\windows-x86-32下面。Installnexus.bat是安装、Startnexus.bat是随机启动。默认是占用了您机器的8081端口。启动前请务必保证该端口未被占用。
2.  常用功能简介
Nexus常用功能就是:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。
开启Nexus服务后访问url地址http://127.0.0.1:8081/nexus,之后登录系统,用户名密码分别是:admin/admin123.
最频繁的就是点击左侧菜单栏的Repositories按钮

列出来的都是仓库,一般用到的仓库种类是hosted、proxy。Hosted代表宿主仓库,用来发布一些第三方不允许的组件,比如oracle驱动、比如商业软件jar包。Proxy代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等。如果构建的Maven项目本地仓库没有依赖包,那么就会去这个代理站点去下载,那么如果代理站点也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。代理站点下载成功后再下载至本机。笔者认为,其实Maven这个自带的默认仓库一般情况下已经够大多数项目使用了。特殊情况时在配置新的仓库,指定url即可,一般熟悉ExtJS的人操作这个Nexus都没什么问题,单词不是很难,不明白的查查单词基本差不多。就是如果Sonatype公司对其做了国际化的处理就更好了。
下载Maven项目索引,项目索引是为了使用者能够在私服站点查找依赖使用的功能,我们先选择一个proxy类型的代理仓库——Apache Snapshots之后将它的下载索引项设为true,确认保存即可

Download storage location设为true,保存后后台会运行一个任务,点击菜单栏的Scheduled Tasks选项即可看到有个任务在RUNNING。 下载完成后,Maven索引就可以使用了,在搜索栏输入要搜索的项,就可以查到相关的信息。比如搜索关键字Struts。

就可以检索出它的相关信息,包括怎么配置依赖信息。我们要想使用这个私服仓库,先在项目pom中配置相关私服信息
Java代码  收藏代码
<repositories> 
    <repository> 
        <id>nexus</id> 
        <name>nexus</name> 
        <url>http://127.0.0.1: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://127.0.0.1:8081/nexus/content/groups/public/</url> 
        <releases> 
            <enabled>true</enabled> 
        </releases> 
        <snapshots> 
            <enabled>true</enabled> 
        </snapshots> 
    </pluginRepository> 
</pluginRepositories> 
这样这个Maven项目构建的时候会从私服下载相关依赖。当然这个配置仅仅是在此项目中生效,对于其他项目还是不起作用。如果相对Maven的其他项目也生效的话。需要修改全局的settings.xml文件。
Java代码  收藏代码
<profile> 
  <id>nexus</id> 
  <repositories> 
    <repository> 
        <id>nexus</id> 
        <name>local private nexus</name> 
        <url>http://localhost:8081/nexus/content/groups/public</url> 
    </repository> 
  </repositories> 
</profile> 
<profile> 
  <id>nexus-snapshots</id> 
  <repositories> 
    <repository> 
        <id>nexus-snapshots</id> 
        <name>local private nexus snapshots</name> 
        <url>http://localhost:8081/nexus/content/groups/public-snapshots</url> 
    </repository> 
  </repositories> 
</profile> 
</profiles> 
<activeProfiles> 
<activeProfile>nexus</activeProfile> 
<activeProfile>nexus-snapshots</activeProfile> 
</activeProfiles> 
之后所有本机的Maven项目就在私服下载组件。
假如我们下载了Oracle的驱动程序jar包想给其他项目组使用,就需要上传该jar包。选中宿主库——3rd party,之后选择Artifact Upload上传至宿主空间。

上传成功后,可以看到如下效果



自己开发的组件也可以通过以上方式上传。
3.  总结
这一次仅仅介绍了常用的私服功能,因为这方面资料太多了。所以就不赘述了。下面共享几个链接
http://www.iteye.com/topic/306449
http://lichunlong0630.iteye.com/blog/897198
http://lj-zhu.iteye.com/blog/961540
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics