我们现在开发java应用,很多时候都会使用开源框架,例如spring,hibernate,log4j等等,这样我们的项目就需要把这些开源的jar导入我们的项目中。以往,我有2种做法引入这些包:
这两种方法各有优点,也各有非常严重的缺陷:
[b]第一种方法[/b]
优点:
<p style="padding-left: 30px;">我需要的包都在我的项目中,这个项目可以传给别人,也可以从一台pc传到另一台pc,几乎不需要其他工作,就能在新环境中跑起来。缺点:
[b]第二种方法[/b]
优点:
<p style="padding-left: 30px;">解决了第一种方法中项目太庞大的缺点,只要和团队成员约定library的命名规则,则可以在多个环境中传输。缺点:
maven的依赖管理功能,则能够很好地解决这样的问题。
在eclipse中(已安装maven插件),我们可以通过创建maven project或者对创建的project右键点击->maven->enable dependency management,来使用maven。这个时候,在project根目录下会有一个xml文件——pom.xml,里面类似:
modelversion:pom文件的版本号,一旦有模块更改就会更新<br>groupid:项目组织的唯一标识
artifactid:项目唯一标识
version:项目版本号
除此之外还有其他元素,详细情况可参考[url=http://maven.apache.org/ref/3.0.3/maven-model/maven.html]http://maven.apache.org/ref/3.0.3/maven-model/maven.html[/url]
接下来,我会为项目增加spring的library。打开pom.xml,编辑后保存
特别注意的是,maven通过groupid/artifactid/version来唯一标识依赖包,这里,我们不需要知道需要的包的路径在什么地方,maven会根据我们的配置,在远程服务器寻找对应的包,放到本地,下次再用到这个包,就不需要再从远程下载了。
以上就是maven作为依赖管理的一个简单应用。
这两种方法各有优点,也各有非常严重的缺陷:
[b]第一种方法[/b]
优点:
<p style="padding-left: 30px;">我需要的包都在我的项目中,这个项目可以传给别人,也可以从一台pc传到另一台pc,几乎不需要其他工作,就能在新环境中跑起来。缺点:
[b]第二种方法[/b]
优点:
<p style="padding-left: 30px;">解决了第一种方法中项目太庞大的缺点,只要和团队成员约定library的命名规则,则可以在多个环境中传输。缺点:
maven的依赖管理功能,则能够很好地解决这样的问题。
在eclipse中(已安装maven插件),我们可以通过创建maven project或者对创建的project右键点击->maven->enable dependency management,来使用maven。这个时候,在project根目录下会有一个xml文件——pom.xml,里面类似:
<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>cn.noside</groupid> <artifactid>maventest</artifactid> <version>0.0.1-snapshot</version></project>
元素说明:
modelversion:pom文件的版本号,一旦有模块更改就会更新<br>groupid:项目组织的唯一标识
artifactid:项目唯一标识
version:项目版本号
除此之外还有其他元素,详细情况可参考[url=http://maven.apache.org/ref/3.0.3/maven-model/maven.html]http://maven.apache.org/ref/3.0.3/maven-model/maven.html[/url]
接下来,我会为项目增加spring的library。打开pom.xml,编辑后保存
<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>cn.noside</groupid> <artifactid>maventest</artifactid> <version>0.0.1-snapshot</version> <dependencies> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-core</artifactid> <version>2.5.6</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-aop</artifactid> <version>2.5.6</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-test</artifactid> <version>2.5.6</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-tx</artifactid> <version>2.5.6</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-web</artifactid> <version>2.5.6</version> </dependency> </dependencies></project>
这样项目根目录会出现"maven dependencies"的目录,这样需要的包就被导入了。
特别注意的是,maven通过groupid/artifactid/version来唯一标识依赖包,这里,我们不需要知道需要的包的路径在什么地方,maven会根据我们的配置,在远程服务器寻找对应的包,放到本地,下次再用到这个包,就不需要再从远程下载了。
以上就是maven作为依赖管理的一个简单应用。