首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

maven2.0学习札记

2012-07-03 
maven2.0学习笔记?xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/mave

maven2.0学习笔记

?

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.mycompany.app</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>

从以上pom.xml文件可以看出,定义一个外部依赖(external dependencies)至少需要4个元素:groupId, artifactId, version, and scope。对于groupId, artifactId, version的意思,和前面我们在创建工程时提到的这几个元素的意义相同,这里就不再重复介绍,scope元素指出你的工程如何使用依赖,并且它的值有compile,test和runtime等等。想要了解更多的依赖说明的信息,请看

http://maven.apache.org/maven-model/maven.html

要想了解完整的依赖机制,请看

http://maven.apache.org/guides/introduction/introduction-to-dependency-management.html

?

有了这些依赖信息,Maven将能在工程构建时引用依赖。

引用的过程是:

首先,在本地仓库(默认的本地仓库地址为:~/.m2/repository)中查找此依赖是否存在。

再次,如果在本地仓库中未发现,则在远程仓库中下载此依赖,并下载到本地仓库中。

最后,通过以上两个步骤就能找到依赖。如果远程仓库无法访问,则可以设置其他远程仓库。具体请看

http://maven.apache.org/guides/introduction/introduction-to-repositories.html

?

一个简单的例子。比如我们要添加一个log4j到我们的工程中。

首先.需要了解log4j的groupId, artifactId, and version信息。可在google上搜索“site:www.ibiblio.org maven2 log4j”。这样在搜索结果里可以找到/maven2/log4j/log4j (or /pub/packages/maven2/log4j/log4j)这样的目录,在这个目录中有一个文件叫做maven-metadata.xml。这个文件内容如下所示:

<metadata>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.1.3</version>

<versioning>

<versions>

<version>1.1.3</version>

<version>1.2.4</version>

<version>1.2.5</version>

<version>1.2.6</version>

<version>1.2.7</version>

<version>1.2.8</version>

<version>1.2.11</version>

<version>1.2.9</version>

<version>1.2.12</version>

</versions>

</versioning>

</metadata>

这样我们能找到groupId为log4j,artifactId为log4j,version当然要用最新的,选择1.2.12。scope我们设置为compile。

这样我们使用mvn compile 编译工程时,会看到mvn下载了log4j到我们的本地仓库。

?

完全支持的配置管理工具

CVS

Subversion

Perforce

StarTeam

部分支持的配置管理工具

ClearCase

File system

Visual Source Safe

不支持的配置管理工具

Accurev

Aegis

Arch

BitKeeper

ClearCase Multisite

CM Synergy

Code Co-op

Darcs

Monotone

OpenCM

PureCM

Serena PVCS / Dimension

Starteam Enterprise

Svk

Vesta

?

当你选中了上面的一个配置管理工具,你就可以利用Maven 2.x的插件或者集成管理工具进行配置管理了。

    持续集成工具continuum

continuum是Maven的一个子项目。他是一个构建基于java的工程的持续集成服务器。他支持以下多种工程类型:

Maven 1

Maven 2

Ant

Shell scripts

continuum有以下特征

紧密整合Maven 2.x

紧密整合Maven SCM

Subversion

CVS

Starteam

Clearcase

Perforce

更易用的基于网络的设置和界面

基于Quartz(Quartz-based)的时间计划表设置

添加新项目十分方便

邮件通知

其他IM通知

IRC

Jabber

MSN

责备机制(Blame Mechanism)

    下载:

在以下连接处下载此软件

http://maven.apache.org/continuum/download.html

安装:

Windows 2000/XP

解压缩continuum-1.0.2-bin.zip到你希望安装Continuum 1.0.2的所在目录。这里假定你安装在C:/Program Files/Apache Software Foundation/continuum-1.0下。

运行:

bin/linux/run.sh 如果是UNIX平台

bin/solaris/run.sh 如果是Solaris平台

bin/win32/run.bat 如果是Windows平台

bin/macosx/run.sh 如果是MacOS X平台.

bin/plexus.sh 如果是其他平台

当服务器启动成功后,打开浏览器访问:

http://localhost:8080/continuum/

?

注意:由于continuum判断一个工程是否构建成功,是使用一个命令行返回值。而windows平台的用户,这个返回值有问题。因此需要修改以下maven 2的bin/mvn.bat文件。这里可以直接从以下地址下载修改后的文件替换掉即可。

http://maven.apache.org/continuum/scripts/mvn.bat

    添加一个项目到continuum

要添加一个maven 2的项目到continuum,需要写入一个pom url或者导入一个pom.xml,当然导入的这个pom.xml文件中包含了continuum需要的各种信息。

我们来看看导入的pom.xml文件中具体需要包含哪些项:

配置管理信息(The SCM information)

<scm>

<connection/>

<developerConnection/>

<tag/>

<url/>

</scm>

?

开发者信息(The developers)

<ciManagement>

<system>continuum</system>

<notifiers>

<notifier>

...

</notifier>

</notifiers>

</ciManagement>

?

集成后所有的通知人信息(The notifiers)

<notifier>

<type>mail</type>

<configuration>

<address>dev@maven.apache.org</address>

</configuration>

<notifier>

?

<notifier>

<type>irc</type>

<configuration>

<host>irc.codehaus.org</host>

<port>6667</port>

<channel>#maven</channel>

</configuration>

</notifier>

    构建工程

按照定制的时间构建

点击本项目上的build按钮进行构建。

发布管理Releases

    发布配置方法

要发布(Releases)一个项目,需要在pom.xml和setting.xml中分别配置。

在pom.xml中

<distributionManagement>

<repository>

<id>mycompany-repository</id>

<name>MyCompany Repository</name>

<url>scp://repository.mycompany.com/repository/maven2</url>

</repository>

</distributionManagement>

在setting.xml中

<settings>

.

.

<servers>

<server>

<id>mycompany-repository</id>

<username>jvanzyl</username>

<!-- Default value is ~/.ssh/id_dsa -->

<privateKey>/path/to/identity</privateKey> (default is ~/.ssh/id_dsa)

<passphrase>my_key_passphrase</passphrase>

</server>

</servers>

.

.

</settings>

通过以上的设置,项目将可以发布到远程仓库,远程服务器。

项目发布现在支持scp,ftp和scpexe等方式。

    Setting.xml文件

这个文件是一个maven的配置文件。

他有下面的功能:

配置本地仓库

配置访问网络的代理服务器

安全和部署的设置。

为仓库设置景象

想要了解更多这个文件的信息可以参考一下以下文章:

http://maven.apache.org/guides/mini/guide-configuring-maven.html

    运行发布的命令

mvn deploy

?

Maven和eclipse工具的合作

当有了以上的工程目录,无论是webapp工程,还是app,我们都希望在集成开发环境中开发。Maven如何和IDE集成。现在我们就来进行讲解。

    首先要让eclipse知道Maven 2repository(仓库)的路径。

因此要设置一个M2_REPO的变量为classpath。

可以使用命令行的方式来设置:

mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:add-maven-repo

还可以在eclipse中定义一个新的classpath变量通过在eclipse的菜单上选择Window> Preferences. 选择Java > Build Path > Classpath Variables page.

    生成eclipse的工程文件。

使用命令行

mvn eclipse:eclipse

这样通过在eclipse的菜单上选择File >Import >Existing Projects into Workspace,就可以将工程导入eclipse中。

?

通过以上2个步骤,我们就可以利用eclipse来进行开发工作了。

    Eclipse插件mavenide

同时在eclipse中我们可以下载一个maven的插件,用来辅助eclipse进行maven工程的开发工作。这个插件名称叫做mavenide。

这个插件可使用以下更新站点:http://m2eclipse.codehaus.org/

并且非常方便的是,这里还提供了一个flash的演示来介绍如何安装此插件,这个flash演示的观看地址在:

http://m2eclipse.codehaus.org/Installing_Maven_2.0_plugin_for_Eclipse.html

要正常使用此插件请注意以下问题:

eclipse使用3.1或以上版本。

Mavenide的插件为0.0.5不要安装错误了。

通过笔者在安装好此插件的一些使用后,看到了此插件的以下一些特性。

    可以方便的添加依赖。

    在编辑完pom.xml文档后,会自动检查此文档的格式是否正确。

    可以将mvn的一些命令通过扩展工具的方式在eclipse中轻松执行。

文章来自:http://blog.csdn.net/srx/article/details/666204

热点排行