DBMNG数据库管理与应用

科学是实事求是的学问,来不得半点虚假。
当前位置:首页 > 经验分享 > Java组件

maven服务器自定义私仓搭建-archiva

Archiva!

如果使用前面给出的pom文件,大家肯定会发现有很多问题,好多依赖找不到,为什么呢?因为这些jar包的版本都是比较高,但是Maven服务器上更新又慢,所以才导致找不到。
除了Maven官方仓库更新慢这个原因,从项目组考虑其实我们都应该要拥有自己的Maven仓库了,俗称Maven私服。

1)Maven官方仓库更新慢,如果要用到新版本的jar,下载不了。在pom文件中的依赖可能就要用到<scope>system</scope>来指定本地的jar,这样对维护来说也成问题。

2)项目组可能会有多个项目,为了今后能统一管理,依赖也需要统一,如果大家各顾各去发展,到头再去管理难上加难,倒不如前期就把好关。

3)如果项目之间存在依赖,通过仓库去解决比直接在lib下应用jar方便的多,而且容易更新。

再想,自己脑袋瓜子也有限,但是我们的的确确有必要搭建自己的Maven私服了。我们这次选中了apache官方的一个实现----Archiva。

1st Step  安装Archiva

1)去http://archiva.apache.org/下载archiva,版本号Archiva 1.2-M1


2)解压至d:\ apache-archiva-1.2-M1,后续用${archiva.home}来代替根目录


3)运行 archiva install  安装archiva服务,目录${archiva.home}\bin

2nd Step 运行Archiva

1)运行  archiva start  ,如果把${archiva.home}\bin追加到${PATH}中,那么在任何地方都可以运行。


2)设置必要的admin密码等等操作,略过。

3rd Step 配置Archiva

1)菜单Repositories下添加Remote Repositories ,比如http://repository.jboss.com/maven2


2)如果需要通过代理链接外网,那么在菜单下Network Proxies添加Network Proxies。

3)菜单Proxy Connectors下添加Repository Proxy Connectors,Network Proxy选择刚才添加的proxy,Managed Repository选择internal,Remote Repository选择刚才添加的repository。


4)照此方式陆续添加http://repository.codehaus.org/ 等Maven仓库,当然一定要包括Maven的官方仓库http://repo1.maven.org/maven2/


5)如果不希望用户密码失效,那么修改${archiva.home}\apps\archiva\WEB-INF\lib\redback-configuration-1.2-beta-1.jar的config-defaults.properties,修改security.policy.password.expiration.enabled=false,里面还有好多配置项,比如超时时间,密码重复次数等等,大家可以根据自己的喜好修改。


6)顺便说一下,Archiva不支持NTLM的Proxy,Archiva内部也是用Wagon去获取依赖的,所以也可以说是Maven本身就不支持NTLM的Proxy。但是,我们可以使用Proxy to Proxy的方式去做,参考http://docs.codehaus.org/display/MAVENUSER/Configuring+Maven+behind+an+NTLM+proxy,有兴趣的可以去试一下。

4th Step 上传自己的jar

1)菜单下Upload Artifact添加自己的jar,或者Maven仓库中没有的jar。


2)其他的输入框很明确,需要注意的是Classifier这个输入框。如果是上传文档,那么就填写javadoc;如果是上传对应的代码,那么就填写sources,其他情况不填。


3)如果要上传大小大于2M的jar,那么需要修改${archiva.home}\apps\archiva\WEB-INF\classes\struts.properties,修改struts.multipart.maxSize=3145728。这个是3M的大小,如果还觉得不够可以自己修改更大值。

5th Step 配置setting.xml

Xml代码  

收藏代码

  1. <settings>  <localRepository>D:/apache-archiva-1.2-M1/data/repositories/internal  

  2. </localRepository>  

  3.   <offline>false</offline>  

  4.   <proxies>  

  5.   </proxies>  

  6.   <servers>  

  7.   </servers>  

  8.   <mirrors>  

  9.     <mirror>  

  10.       <id>archiva.default</id>  

  11.       <mirrorOf>*</mirrorOf>  

  12.       <name>archiva.mirror</name>  

  13.       <url>http://localhost:8080/archiva/repository/internal</url>  

  14.     </mirror>  

  15.   </mirrors>  

  16.   <profiles>  

  17.   </profiles>  

  18. </settings>  

因为archiva的仓库建立在${archiva.home}\data\repositories\internal目录下,所以在setting.xml中指定localRepository时,就可以直接指向该目录,可以节省空间。当然,如果archiva的服务不在本地时,Maven还是需要指定一个存放仓库的目录。

mirror的配置<mirrorOf>*</mirrorOf>告诉maven,镜像所有的profile,都从<url>http://localhost:8080/archiva/repository/internal</url>这个地方获取依赖。

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号