软件项目管理之代码管理(初识maven)

在项目管理中,代码的管理体现了项目的生产效率。控制版本是一会事。但如何管理项目的生命周期以及项目中各个工程之间的依赖关系还是比较费事的,maven作为一个优秀的项目管理工具,可以极大减少代码管理的成本。以下内容来源于一些互联网资料。官方文档为首选,另外maven权威指南这本书不错。

下面是一个初学maven的简单试验。
Myeclipse6.6中集成了maven。它可以帮助我们做以下几件事。Maven工程的主配置文件是pom.xml。修改配置即可完成我们需要的功能。
1, 新建maven工程。(普通java工程,如果是其他类型工程也可以选择是否maven模式)。
2, 查看maven工程的结构。

3, 存储库设置。



打开preferences找到maven配置界面,local respository即是本地存储库位置。为了方便共用,开发时,本机上只需要指定一个库即可,根据它的规则会将远程的依赖包下载下来,供工程编译及打包使用。远程存储库可以在pom中配置,默认继承http://maven.apache.org/POM/4.0.0。地址是http://repo1.maven.org/
maven2/。在pom.xml里我们设置很多仓库位置,以便于应对你的依赖包在各个地方。并且提供功能让你更新这些包到本地仓库。
     4、添加依赖包。直接在pom.xml进行配置。
     5、打成jar包。在工程上点右键选Run As即可出现一系统maven功能。点maven package即可根据pom.xml里配置进行打包。

      6、将工程上传,连同打的jar包进行上传到svn服务器。
       在http://org-shock-simpletest.googlecode.com/svn/trunk/simpletest/target 下可以看到一个simpleTest-0.0.1-SNAPSHOT.jar包。以snapshot发布的一般都不稳定,默认情况下其他工程不能引用,需要更改pom.xml里配置,才可引用此远程仓库的jar。下面是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>org.shock</groupId>
<artifactId>simpleTest</artifactId>
<!-- 打成包后的地址 -->
<version>0.0.1-SNAPSHOT</version>
<!-- 默认install时会打成jar包放到target文件下 -->
<packaging>jar</packaging>

<name>simpleTest</name>
<url>http://code.google.com/p/org-shock-simpletest/</url>

<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<!-- 此包用于测试 -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.6.4</version>
<!-- 此包编译时需要 -->
<scope>compile</scope>
</dependency>
</dependencies>
</project>
      7、在其他maven工程中使用此jar包。需要增加远程仓库及jar标识。仓库的建立也需要有一定规则。在其他工程中引用jar包。如下面片断指出存储库位置。
      
<repository>
<id>hibernate-memcached</id>
<name>hibernate-memcached</name>
<url>http://raykrueger.googlecode.com/svn/repository</url>
</repository>

      8、根据junit测试生成测试用例。Maven可以实现一键测试、打包、安装。
      9、问题:好像远程仓库配置有规则,我配的仓库好像不好使,但能引用到,不知什么原因。不配远程仓库地址也能用。我把本地仓库里的删了,他还能引用到,很怪。后面再找找原因。

猜你喜欢

转载自kill10.iteye.com/blog/982858