中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > 综合文章
Mave项目管理实战演练
作者:未知 时间:2005-07-27 22:28 出处:CSDN 责编:chinaitpower
              摘要:Mave项目管理实战演练

Mave项目管理实战演练

作者:李俊杰

    Mave项目是开放源代码公司Apache的又一力作,是项目管理的利器,是针对Ant项目的不足而开发的,除了拥有Ant的构建项目的特色外,还有项目高级管理工具,项目管理者可以轻松地了解项目的各种情况。

下面结合本人对Maven的了解和实践,特总结如下:

u       Maven的下载和安装

u       Maven的配置和管理

u       Maven项目继承问题说明

u       MavenVSS集成

u       Maven 定制javadoc

u       常用的命令goal

u       Maven注意事项

Maven的下载和安装

1)        下载Maven,在http://maven.apache.org/start/download.html地址下载Maven的最新版本(点击windows.exe,我的操作系统是windows),即到如下下载地址 http://www.apache.org/dyn/closer.cgi/maven/binaries/maven-1.0.2.exe,我使用Http下载(点击http://apache.justdn.org/maven/binaries/maven-1.0.2.exe)下载到本地。(在网上看到许多网友下载Maven失败,所以加以详细说明)

2)        安装Maven,如果你的机器上没有安装j2sdk,安装将j2sdk,然后设置java-home(windows:我的电脑(右键)->属性->高级->环境变量->用户变量->新建(如:java-home  C:/j2sdk1.4.2_01),然后就可以直接运行maven-1.0.2.exe顺利安装。

3)        设置maven-home,类似于设置java-home,根据Maven的安装路径(${maven-home})设置如  maven-home   d:/Maven1.02

4)        汉化Mavendos控制台输出,用解压缩工具(如WinRar)打开${maven-home}/lib/maven.jar,找到并拖出org\apache\maven\messages\Message_zh_CN.properties,如果Message_zh_CN.properties文件的编码不是美国信息互换标准代码ASCII),则使用java中的nativie2ascii命令把Message_zh_CN.properties转变为美国信息互换标准编码(ASCII)。并把转换后的文件名称也命名为Message_zh_CN.properties,然后拖入maven.jarorg\apache\maven\messages\中,覆盖原来的文件。转换步骤:打开dos界面,进入D:\bea\jdk141_03\bin>native2ascii Message_zh_CN.properties test.properties ,然后再把test.properties,重命名为Message_zh_CN.properties

5)        开始->运行->cmd>进入dos界面,然后输入maven回车,如出现下面的情况,则说明安装成功。

 

 

Microsoft Windows 2000 [Version 5.00.2195]

(C) 版权所有 1985-2000 Microsoft Corp.

 

 

C:\Documents and Settings\lijj>maven

-  __  __

- |  \/  |__ _Apache__ ___

- | |\/| / _` \ V / -_) ' \  ~ intelligent projects ~

- |_|  |_\__,_|\_/\___|_||_|  v. 1.0.2

-

- BUILD SUCCESSFUL

- Total time: 1 seconds

- Finished at: Thu Mar 03 16:55:06 CST 2005

-

Maven的相关配置和管理

Maven的主要组件包括项目对象模型(Project Object Model  POM),资源库(Repository)和目标(goals),现在根据实际例子来说明各个组件。其中项目对象模型一般是用project.xml来管理项目,而Repositroy主要提供项目所需要的jar文件,包括不同的版本,goals主要包括maven.xml和相关的插件(plugs)。

另外还包括属性文件如project.propertiesbuild.properties.。属性文件的优先级是${user.home}/build.properties${basedir}/build.properties${basedir}/project.properties,(其中${user.home}表示本用户目录如C:\Documents and Settings\lijj${basedir}表示项目project.properties所在目录,如D:\maventest)优先级前者最高,后者最低。即后者定义了某属性,前者也定义了该同名的属性,则以前者为准。由于Maven在项目管理方面有继承的概念,但不适合于build.properties文件。所以我们在项目管理中一般不用build.properties,只用project.properties文件来定义项目所需的属性。

创建项目

象我们平常创建项目一样,创建一个工作目录(d:/maventest),并把相关项目文件(jspjavapropertiesimgjsxml等等)copy到该目录下

创建项目所需要的lib(.jar文件) 

     因为maven倡导的思想是通过网络来实现项目管理,因此使用CVS来控制版本,我们现在更多的是采用VSSsource safe)来控制版本。MavenRepository就体现了集中管理资源的思想,根据项目所要用到的jar资源文件进行网络统一管理,而我们现在更趋向于使用本机的资源文件。

1)首先在项目的属性文件project.properties中定义

##本地资源位置         

maven.repo.local=d:/Maven 1.0.2/repository                       

##是否使用远程repository   

maven.repo.remote.enabled=false

2)其次在本地的资源库中创建该项目所要使用lib,如d:/Maven 1.0.2/repository/bjcy/jars,然后把该项目所用的jar 文件copy到该目录(d:/Maven 1.0.2/repository/bjcy/jars)下,weblogic.jar, appmodules.jaropendata.jar等等,使用解压缩工具(WinRar)打开这些jar文件,找META-INF目录下的MANIFEST.MF文件,如果没有找到表明没有版本说明,则修改文件名(如jarname.jar>jarname-.jar,在文件名后加一横线),如果找到MANIFEST.MF文件,打开后看到Manifest-Version: 1.0,则表示该jar文件的版本号为1.0,修改文件名(如jarname.jar>jarname-1.0.jar

  3 最后在project.xml文件中写明该项目要依赖的资源

<!-- jar files the project is dependent on -->

 

 

   <dependencies>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>weblogic</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>appmodules</artifactId>     

</dependency>

。。。。。。。。。

</dependencies>

该文档表示weblogic.jar文件的版本是1.0appmodules.jar文件没有版本说明,且所有要依赖的jar都在bjcy/jars下面。

project.xml文件说明

project.xmlMaven项目管理的核心文件,主要说明项目的必须的内容

<?xml version="1.0" encoding="gb2312"?>

<!--encoding=”gb2312”表示支持中文-->

<project>

  <!-- the version of maven's project object model -->

 

 

  <pomVersion>3</pomVersion>

  <!-- a unique name for this project -->

 

 

  <id>prjcyspapp</id>

  <!-- a short but descriptive name for the project -->

 

 

  <name>prjcyspapp</name>

  <!-- The version of the project under development, e.g.

       1.1, 1.2, 2.0-SNAPSHOT -->

 

 

  <currentVersion>1.0</currentVersion>

  <!-- details about the organization that 'owns' the project -->

 

 

  <organization>

    <name>北京银河长天软件公司</name>

    <url>http://www.apache.org/</url>

    <logo>http://maven.apache.org/images/jakarta-logo-blue.gif</logo>

  </organization>

  <!-- the year the project started -->

 

 

  <inceptionYear>2005</inceptionYear>

  <package>prjcyspapp</package>

  <logo>http://maven.apache.org/images/maven.jpg</logo>

  <description>北京市朝阳区网上审批系统</description>

  <!-- a short description of what the project does -->

 

 

  <shortDescription>朝阳区网上审批在线服务系统是在北京市的统一领导下,按照统一规划、统一领导、改进服务、提高效率的原则,以推进行政审批制度改革、优化发展环境为目的,以服务企业、服务纳税人为根本宗旨,以北京市电子政务网络平台为依托,在现有朝阳区投资服务大厅网上咨询审批系统的基础上,进一步改造升级,优化整合资源,建立统一的、面向社会公众的朝阳区网上审批在线服务系统平台,提高办事效率和公共服务质量。</shortDescription>

  <!-- the project home page -->

 

 

  <url>http://maven.apache.org/reference/plugins/examples/</url>

  <issueTrackingUrl>http://nagoya.apache.org/scarab/servlet/scarab/</issueTrackingUrl>

  <siteAddress>jakarta.apache.org</siteAddress>

  <siteDirectory>/www/maven.apache.org/reference/plugins/examples/</siteDirectory>

  <distributionDirectory>/www/maven.apache.org/builds/</distributionDirectory>

  <!-- the version control repository and http url for online access

       the connection element has the form:

       scm:<system>:<system specific connection string> -->

 

 

  <repository>

    <connection>scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:maven-plugins/examples</connection>

    <url>http://cvs.apache.org/viewcvs/maven-plugins/examples/</url>

  </repository>

  <!-- any mailing lists for the project -->

 

 

  <mailingLists/>

  <!-- who the developers are for the project -->

 

 

  <developers>    

    <developer>

      <name>安立</name>

      <id>anli</id>

      <email>anli@sohu.com</email>

      <organization>北京银河长天软件公司</organization>

      <roles><role>项目经理</role></roles>

    </developer>

    <developer>

      <name>李俊杰</name>

      <id>lijj</id>

      <email>lijj@sina.com</email>

      <organization>北京银河长天软件公司</organization>

      <roles><role>开发人员</role></roles>

    </developer>

    <developer>

      <name>马婕</name>

      <id>maj</id>

      <email>mj@sina.com</email>

      <organization>北京银河长天软件公司</organization>

      <roles><role>开发人员</role></roles>

    </developer>

    <developer>

      <name>张秀梅</name>

      <id>zhxm</id>

      <email>zxm@sina.com</email>

      <organization>北京银河长天软件公司</organization>

      <roles><role>开发人员</role></roles>

    </developer>

   

  </developers>

   <licenses>

        <license>

            <name>北京银河长天软件公司</name>

            <url>http://www.opendata.com.cn</url>

            <distribution>下载安装</distribution>

        </license>

    </licenses>

 

 

  <!-- jar files the project is dependent on -->

 

 

  <dependencies>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>weblogic</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>appmodules</artifactId>     

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>opendata</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>lenovo_userManager</artifactId>     

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>jfreechart</artifactId>

      <version>0.9.15</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>jdom</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>mail</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>msg</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>Base64</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>log4j</artifactId>

      <version>1.2.8</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>soap</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>xerces</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>FormServer</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>DataAccess_client</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>classes12</artifactId>     

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>axis</artifactId>

      <version>1.0</version>

    </dependency>

     <dependency>

      <groupId>bjcy</groupId>

      <artifactId>shareClient</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>saaj</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>jaxrpc</artifactId>

      <version>1.0</version>

    </dependency>

    <dependency>

      <groupId>bjcy</groupId>

      <artifactId>jcommon</artifactId>

      <version>1.0</version>

    </dependency>

   

    <dependency>

      <groupId>apache</groupId>

      <artifactId>log4j</artifactId>

      <version>1.2.8</version>

    </dependency>

   

 </dependencies>

 

  <!-- build information for the project -->

 

 

  <build>

<nagEmailAddress>turbine-maven-dev@jakarta.apache.org</nagEmailAddress>

<!—相对于project.xml文件所在目录的源代码目录 -->

    <sourceDirectory>develop/PrjBjcyEap/src</sourceDirectory>

    <unitTestSourceDirectory>test/java</unitTestSourceDirectory>

    <unitTest>

      <includes>

        <include>**/*Test.java</include>

      </includes>

      <excludes>

        <exclude>**/NaughtyTest.java</exclude>

      </excludes>

    </unitTest>

    <resources>

      <resource>

        <directory>src/conf</directory>

        <includes>

          <include>*.properties</include>

        </includes>

      </resource>

    </resources>

  </build>

</project>

project.properties文件说明

##本地资源位置

maven.repo.local=d:/Maven 1.0.2/repository

##是否使用远程repository

maven.repo.remote.enabled=false

##产生的文档所应包含的xml声明头

maven.docs.omitXmlDeclaration=<?xml version="1.0" encoding="gb2312"?>

##生成文档的缺省编码  ISO-8859-1

maven.docs.outputencoding=gb2312

maven.xdoc.date=left

## maven.xdoc.version=${pom.currentVersion}

#maventest.dir=d:/maventest

##html格式报告的输出目录${basedir}是指maven.xml文件所在的目录

maven.docs.dest=${basedir}/docs

##xdocs文档转换成html后的输出目录

maven.gen.docs=${basedir}/docs/xmldocs

maven.build.dest=${basedir}/develop/PrjBjcyEap/classes

maven.plugin.dir=${maven.home}/plugins

##测试环境IP

test.host=192.168.1.249

##测试环境的外网部署目录

test.ww.deploy.dir=e$/maventest/develop/PrjBjcyEap/wwdomain/applications/bjcyww

##测试环境的内网部署目录

test.nw.deploy.dir=e$/maventest/develop/PrjBjcyEap/nwdomain/applications/bjcynw

##本机外网环境部署目录

local.ww.deploy.dir=${basedir}/develop/PrjBjcyEap/wwdomain/applications/bjcyww

##本机外网环境部署目录

local.nw.deploy.dir=${basedir}/develop/PrjBjcyEap/nwdomain/applications/bjcynw

 

 

deploy.attr=local

 

 

maven.xml