封封窝

还没有想好

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

如何用Maven来管理Java项目的Library

关键字: Java, Eclipse, Maven

背景

      我们现在的Java项目中,每个项目都有很多依赖的Jar档,基本上都放在了自己项目下的lib目录中,

这样就会导致同样的Jar档在各个不同的项目中重复出现,然后我们再将这些重复的资源放到VSS,SVN等

版本控管工具中,日子久了就会发现,一个是各个项目间的Jar档版本很难统一控管,另外会给版本控管工具

带来很大的空间上的浪费.

 

摘要

      本文从Maven的库包管理功能上做了一些描述,笔者初步尝试了一下用Maven来管理项目的依赖包.

Maven这个工具的作用之一就是将这些我们需要的Library库统一控管起来,每个项目只需要编写一个

pom.xml的配置文件即可.

内容

1.下载并安装Maven

        下载站点: http://maven.apache.org

        安装: 将下载的压缩档直接解压到任意路径,然后在系统环境变量中的Path变量中添加Maven的bin目

录(如我本机的路径是D:\Program Files\maven-2.0.6\bin)

打开CMD窗口,运行mvn –version显示正确版本,说明安装成功.

      2.利用Maven创建标准布局的webapp项目

           在控制台执行下面命令(groupId后面是包名,artifactId后面是项目名称)

           mvn archetype:create -DgroupId=com.benq.mavenproj -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp

在my-webapp根目录下,你会看到名为pom.xml的文件,这个就是maven的项目描述文件

编辑pom配置项目所需依赖,例如下面:

<dependency>   

    <groupId>org.springframework</groupId>   

    <artifactId>spring</artifactId>   

    <version>2.0</version>   

    <scope>compile</scope>   

</dependency>  

groupId是该类库所属的组织,作为文件目录,包名结构映射成目录结构,artifactId就是具体的类库名称了,是groupId的一个子目录,version是版本号,每个版本都有一个单独的目录,里面放置的就是具体的jar包。

关于依赖的写法,可以去这里查询:http://mvnrepository.com/

          

3.生成eclipse项目

在控制台下进入项目目录,如果是从maven webapp项目生成eclipse wtp,执行:

mvn -Dwtpversion=1.5 eclipse:eclipse(目前最新支持到WTP1.5)

普通eclipse项目执行:mvn eclipse:eclipse

然后在eclipse中import项目即可

4.eclipse中设置maven路径变量

刚导入的项目上会有错误标记,不用担心,因为还没有设置maven的类库变量

打开项目的属性框,在Java Build Path里我们可以看到项目依赖类库的路径都已经给自动设置好了

下面设置maven的路径变量M2_REPO

 Window -> Preferences -> Java -> Build Path -> Classpath Variables,New

Name命名为M2_REPO,路径为你的本地的maven类库地址,这里为C:/Documents and Settings/windy xu/.m2/repository,设置成功后重新编译,发现项目的错误标记已经消除了,至此,eclipse项目已经导入成功了

5.为项目添加新的依赖

编辑pom文件,添加新的dependency,保存後

在控制台分别执行:

mvn eclipse:clean

mvn -Dwtpversion=1.5 eclipse:eclipse

在eclipse中刷新项目即可看到新的依赖项已经添加到eclipse项目中

6.maven标准的项目布局

前面已经介绍了如何新建一个maven项目并导入到eclipse中,但对于已有的wtp项目,其项目布局是不符合maven方式的(eclipse下wtp项目web目录在项目根目录下WebContent,maven布局是在src/main/webapp),这就不能直接通过eclipse:eclipse来生成eclipse的依赖

但可以通过改写项目pom文件来指定源码目录和测试源码目录:

xml 代码

<build>  

<finalName>my-webapp</finalName>  

<sourceDirectory>src</sourceDirectory>  

<testSourceDirectory>test</testSourceDirectory>  

</build>  

 

总结

    利用Maven来管理依赖包确实很方便,但是老项目可能目录结构千差万别,使用时可能需要多研究研究.

另外我们有时候会包含一些我们自己写的Jar档,我个人建议这些Jar档就不要放到Maven中管理了(虽然Maven也可以建立”私服”),因为可能会带来”私服”的维护成本上升.

posted on 2007-07-20 16:16  封封  阅读(7812)  评论(0编辑  收藏  举报