Maven 功能简介
关键字: Maven 项目管理Maven 特点:
- Maven的编译以及所有的脚本都基于POM(project object model)。
- Maven对所依赖的包有明确的定义,如使用那个包,版本是多少,一目了然。
- Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jar,tld,pom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。
- Maven有大量的重用脚本可以利用,如生成网站,生成javadoc,sourcecode reference,等。
目前Maven的版本为Maven 2.0。
简单的管理功能:
生成项目 mvn archetype:create -DgroupId=com.myproject -DartifactId=my-app
my-app
----src
----main
----java
----com
----myproject
----test
----java
----com
----myproject
Maven在my-app目录下创建了一个pom.xml文件。这是项目的最基本部分。pom.xml文件包含了一组指令,这些指令告诉Maven如何构建项目和包含哪些其它的特殊指令(POM是“项目对象模型”的缩写)。在默认的情况下,Maven包含了JUnit的依赖以此来鼓励单元测试。
- <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/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.myproject</groupId>
- <artifactId>my-app</artifactId>
- <packaging>jar</packaging>
- <version>1.0-SNAPSHOT</version>
- <name>Maven Quick Start Archetype</name>
- <url>http://maven.apache.org</url>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- </project>
创建完项目后,可以往项目里添加代码并使用Maven的所有全新技巧。注意以下命令必须在pom.xml文件所在的目录中运行。
- --mvn test:运行应用程序中的单元测试
- --mvn package:依据项目生成jar文件
- --mvn install:将项目的jar文件添加到库中,以备依赖此项目时使用。
- --mvn site:生成项目相关信息的网站
- --mvn clean:清除目标目录中的生成结果
- --mvn eclipse:eclipse:生成Eclipse项目文件
scope参数值的说明:
- --compile:默认值。表明是所有任务所需的资源
- --test:运行所有的测试用例时所需资源
- --runtime:表明是运行时所需资源
- --provided:JDK部分或应用服务器的classpath所需的资源
Java web项目管理
mvn archetype:create -DgroupId=com.oreilly -DartifactId=Oreilly -DarchetypeArtifactId=maven-archetype-webapp
生成的结果结构如下所示:
Oreilly
----src
----main
----resources
----webapp
----WEB-INF
pom.xml文件中将包含一行来表明项目应该被打包成war文件:
依赖管理
创建好项目结构,添加完一些代码,测试并编译好应用程序后,接下来可以看看Maven是如何处理依赖关系的。为了给项目添加一个依赖项,必须将此依赖项添加到pom.xml文件中。下次运行Maven的时候,它将从Ibiblio存储库中得到这个依赖项,并且将此依赖项添加到项目构建路径中。
例,将功能强大的Quartz库添加到项目中。Quartz是一款用纯Java编写的关于时间安排的开源项目,它是您时间安排需求方面的很好的选择。
- <dependency>
- <groupId>quartz</groupId>
- <artifactId>quartz</artifactId>
- <version>1.5.1</version>
- <scope>compile</scope>
- </dependency>
我们仅仅只需添加
手动配置jar包
例,安装Java Activation框架的jar包。首先从Sun的站点上下载此jar包,接着使用Maven将它导入本地的存储库中。
mvn install:install-file -Dfile=activation.jar
-DgroupId=javax.activation -DartifactId=activation
-Dversion=1.0 -Dpackaging=jar
现在,新的jar包就像其它的项目依赖项一样安装到了本地存储库中。在只需添加依赖声明后,就已准备就绪了。在添加jar包和声明它们为依赖项时,必须确保版本信息的正确性。版本的不匹配会导致Maven在寻找资源时的失败。在导入Sun的jar包时,如果您需要寻求标准命名参数的帮助,可以参考Sun标准jar包命名。
- <dependency>
- <groupId>javax.activation</groupId>
- <artifactId>activation</artifactId>
- <version>1.0</version>
- <scope>compile</scope>
- </dependency>
Maven 和 Eclipse
可以首先使用Maven来创建您的项目,然后再用命令mvn eclipse:eclipse来生成Eclipse项目文件,这样最初就能得到一个好的目录结构,但Maven也可通过其Eclipse插件来管理任何项目。
Maven2.0有着许多实用的特点,并且完成任务十分出色。Maven中最值得称赞的地方就是使用了标准的目录结构和部署。Maven可以通过纯脚本来实现。在文档方面,由于使用了项目站点构建工具,所以当项目构建完成后,您可以查看所有开发的当前状态。
- 15:46
- 浏览 (535)
- 评论 (0)
- 分类: Project Management
- 相关推荐
发表评论
- 浏览: 54528 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
我的相册
共 6 张
最新评论
-
一个数据库连接Java工具类 ...
不错,加油,能写成工具类就好了。
-- by dd2086 -
Hibernate和Access
我指的是方法一
-- by 黑暗浪子 -
Hibernate和Access
我测试一下,如果连接的是*.asa文件,好像就报"can't open conn ...
-- by 黑暗浪子 -
计算机/软件领域中的名人
Bruce Eckel和其他几位根本不是一个层次的人物。Marin Fowler ...
-- by turing -
《夜袭》和战争
电影拍的不好,有辱历史!
-- by ken1984






评论排行榜