做环保主义者,用Maven2 管理Java类库
2006-03-26 01:39
169 查看
作者:江南白衣
看着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年的项目特征
看着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年的项目特征
相关文章推荐
- 做环保主义者,用Maven2 管理Java类库[摘]
- Java核心类库——文件和文件夹的管理File类
- JAVA课程设计-学生信息管理系统(个人博客)
- Java SSM 商户管理系统 客户管理 库存管理 销售报表 项目源码
- ElasticSearch 6.x 学习笔记:27.Java API之文档管理
- iOS 如何在一个存在多个project的workspace中引入cocoapods管理第三方类库
- Java内存管理机制
- java控制台实现简单的学生管理系统
- java初级酒店客房管理图形化界面总结
- 【JavaWeb】(4)JSP状态管理
- 简单的java学生管理系统
- java 常用集合类库
- Java经典类库-Guava中的函数式编程讲解
- Java商户管理系统 客户管理 库存管理 销售报表 SSM项目源码
- JAVA实训作业之网吧管理系统V2.01
- Java工程设计:交通灯管理系统
- 【自动内存管理机制】(1)Java内存区域(方法区、虚拟机栈、本地方法栈、堆、程序计数器)与内存溢出异常
- 从Java类库看设计模式 2
- JAVA 应用简单破解---类库提前加载
- Java并发编程之线程管理(基本线程同步4)