做环保主义者,用Maven2 管理Java类库

王朝java/jsp·作者佚名  2006-03-26
窄屏简体版  字體: |||超大  

作者:江南白衣

看着log4j-2.13.jar被每个项目每个版本里一次又一次无限下载,你就会觉得用Maven2 管理Library实在很环保。

而且,Java的类库也急需摆脱这种无身份无地位一个jar包随处摆放的境况。Maven给Jar以名份是一个好方向。

其实Ruby和php都已有了这样的管理工具和官方网站,所有的Ruby包在机器上都像rpm那样是installed的。Maven既然代表了Java,但愿也能好好发展。

完全使用Maven来做全部事情有点超前,因此我也只是是用它的library管理功能,真正用的深入的是pesome郁也风。

1. 查找Jar包在官网的路径

http://www.mavenregistry.com/ ,太实用了。

2. 用Ant 调Maven管理 JAR

SpringSide使用maven2的ant task,不需要用户装maven,直接用ant脚本来下载依赖包并copy到$springside_home/lib。脚本如下:

<typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant">

<classpath>

<pathelement location="lib/maven-artifact-ant-2.0.2-dep.jar"/>

</classpath>

</typedef>

<artifact:dependencies pathId="maven.classpath" filesetId="maven.fileset">

<artifact:pom file="pom.xml"/>

</artifact:dependencies>

<copy todir="lib/">

<fileset refid="maven.fileset"/>

<mapper type="flatten"/>

</copy>

第1句从maven-artifact-ant-2.0.2-dep.jar读antlib.xml,读出一堆maven的task。

第2句分析pom.xml里的jar,如果没有就上http://repo1.maven.org/maven2 把jar下载到${user.home}/.m2/目录。并把所有jar定义成ant的fileset对象--maven.fileset。

第3句把maven.fileset定义的,放在${user.home}/.m2/里的jar 拷贝到项目lib目录。

不过,相对来讲Maven2还很不成熟,比如很多项目的pom是乱写的,比如maven官网的速度实在太差,还经常抽筋死掉,比如有一些想要的新版官网上没有。

3. 自建私服

自己建个私服是不错的主意。其实也简单,随便拿台http服务器,把${user.home}/.m2/ 目录传上去就行了

在pom文件中,把私服的http url写在官网的前面。

<repositories>

<repository>

<id>springside</id>

<url>http://www.springside.org.cn/maven2</url>

</repository>

<repository>

<id>maven</id>

<name>slowly office site</name>

<url>http://repo1.maven.org/maven2</url>

</repository>

</repositories>

4. 在私服加入自己的jar包

对于官网没有的新版,按目录路径传一个jar包,加一个最简单的pom文件,并且为它们生成checksum文件,用ant的task就可以:

<target name="checksum" description="为maven私服上的文件生成CHECKSUM">

<checksum file="C:\checksum\spring-mock-2.0-m3.pom" algorithm="SHA" fileext=".sha1"/>

</target>

相关文章:

UTF-8、Subversion、Maven2--2007年的项目特征

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航