使用Maven来管理工程
为什么要使用Maven,及我是如何使用Maven的
1. 为什么要使用Maven
在使用Maven之前,我是这样来管理所使用到Java包的。下面以使用 commons-lang 为例进行说明:
- 先从Apache网站下载最新的Lang包(包括Jar包 commons-lang3-3.1.jar 、源码包 commons-lang3-3.1-sources.jar)
- 将下载得到的包按照某种规律存放好,我是放在 D:\Java\Apache\Commons\ 目录下
- 在Eclipse创建一个用户自定义的Library,名为: Apache-Commons-Lang-3,同时将Jar包和源码包相关联(这样才能在Eclipse中查看对应的代码)
- 在自己的工程中引用自定义的Library: Apache-Commons-Lang-3
可以看出,上面的步骤比较繁琐。并且更大的问题是在其它机器上想要编译时,就会导致需要将 D:\Java\ 目录拷贝过去,然后还要将定义的 Library 导入到Eclipse中,才能正常工作。
而如果是直接将 Jar包、源码包 全部打入工程,当然是可行的,但这又会带来极度占用空间的问题。 写个小工程,也就3、5K代码,由于引入了一大堆Jar包,结果整个工程变成几兆、乃至几十兆的大小。
如果使用 Maven 来管理工程,事情就变得简单了,只要
- 在机器上安装好 Maven
- 在 pom.xml 中配置好涉及到的Jar包
- 执行命令 mvn clean compile , Maven就会自动下载相应的Jar包进行编译
至于源码和Jar包关联,也不再需要我们手工指定了。只需要在Eclipse中安装 M2Eclipse 插件即可,当在Eclipse中点击查看Jar包中的一个类时,该插件会自动下载对应的源码包,实现源码和类的关联。
2. 我是怎么使用的
##2.1 搭建了私服(Private Repository)
先使用 Apache Archiva 搭建了一个私服。
1.4版本的界面不错,远比1.3好用,虽然目前还只是1.4-M3版本,但已经可以满足基本需求了。如果不需要考虑用户访问权限问题,只需要启动服务器、添加一个admin用户即可使用。
##2.2 修改用户级 settings.xml
将 $M2_HOME/conf/settings.xml 拷贝到 ~/.m2/目录下,然后修改 ~/.m2/settings.xml 文件
1 . 修改本地仓库(Local Repository的路径)
2 . 添加一个 中央仓库(Central Repository) 的 Mirror
上面配置的URL为 Archiva 服务器缺省的 internal repository 的地址。
##2.3 修改工程属性
将以前工程的 .classpath , .project 文件删除,新增一个 pom.xml 文件。
在pom.xml 中指定所要引用的Jar包。同时删除 lib 目录下相应的jar包。理论上所有jar包都应该通过 Maven 来获取。
然后通过 M2Eclipse 所提供的 Import Existing Maven Projects 功能来导入工程。
##2.4 预执行命令
安装 Maven 只是安装了核心部件,真正需要运行,还需要下载很多插件。
可以通过执行 prepare_maven.sh 来确保安装基本的插件。
参考
声明: 本文采用 CC BY-NC-SA 3.0 协议进行授权,转载请注明出处。