项目改用maven和artifactory做jar包管理,artifactory相当于公网maven repo的cache或者说镜像的作用,内网的developer都会连接到artifactory去download jar包,如果artifactory没有这些jar包,artifactory会自动去外网下载。
但是经过多次测试,发现artifactory1.2.5使用的commons-httpclient-3.1.1不支持ntlm2协议,而现在很多都使用ntlm2进行身份认证来代理上网。所以我们用的artifactory一直连不出去download。在网上search了一下,发现有人解决了这个问题,并提供了patch的下载,太感谢他了。
http://issues.apache.org/jira/browse/HTTPCLIENT-579
下载后重新打jar commons-httpclient-3.1.1,actifacotry.war放于的web-inf下,并重新打war actifacotry.war。
执行
mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.mycompany.app -DartifactId=my-app
artifactory.log中的结果:
2008-03-20 11:58:53,315 [INFO ] (AuthChallengeProcessor.java:101{10}) - ntlm authentication scheme selected
2008-03-20 11:58:54,477 [INFO ] (HttpRepo.java:128{10}) - third_party: Retrieving 'http://repo1.maven.org/maven2/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom'...
Pass了,可以享受maven,artifactory带来的构建项目的快乐了。