Maven_参考文档

Maven_参考文档
Maven_参考文档

Maven 参考文档

Maven1.0已经历了几年的时间,并且作为Ant的替代品已被广大的开发人员所接收,但它并没有在很大程度使开发人员从Ant的 build.xml文件中解脱出来。Maven1.0速度慢并且笨拙,使用起来的困难度并不亚于使用Ant的项目。事实上,它的核心是基于Ant实现的。在经过了几乎彻底的重写后,Maven2.0诞生了。

一个Java项目中最困难的地方就是如何着手启动它。在启动项目之前,我们必须配置好所有的逻辑关系。比如,Java源代码应该放在何处?单元测试应该在何处进行?依赖的jar包应该如何放置?如何构建项目,如何形成文档,如何测试和部署项目?在这种情况下,开发人员不同的处理选择将会影响项目的余下部分。您的选择可能会使你陷入困境,也可能会在将来证明您是一位Java架构大师。我们假定后者是我们奋斗的目标,接下来就进入我们的正题。

构建一个Java项目可以使用很多工具,其中包括Ant。Ant作为一款具有革命性的工具,一直是众多开发者使用工具中的首选,它能使开发人员摆脱使用大量make命令的苦海。对于那些不太熟悉make命令的人来说,他们有充足的理由来表明使用命令并不是构建Java项目的最好工具,因为它不具备平台独立性并且不易使用。Ant的出现解决了以上的问题,它使用了一个平台独立的工具,该工具能够解析XML配置文件,即build.xml。虽然Ant由于其诸多的优点而备受欢迎,但它同样有一些缺点。build.xml文件由于采用了极其简短的描述方式,使得开发人员需要预先学习它的语法。虽然学习曲线不是很陡峭,但Java开发人员更应该把时间放在开发上面。

Maven是新一代的生力军,它的境遇正好和几年前的Ant十分类似。Maven1.0已经历了几年的时间,并且作为Ant的替代品已被广大的开发人员所接收,但它并没有在很大程度使开发人员从Ant的build.xml文件中解脱出来。Maven1.0速度慢并且笨拙,使用起来的困难度并不亚于使用Ant的项目。事实上,它的核心是基于Ant实现的。在经过了几乎彻底的重写后,Maven2.0诞生了。

Maven2.0的优点

Maven2.0有许多很好功能,这些功能不仅仅是帮助您构建项目。如果您刚刚开始启动一个Java项目,并且想使该项目快速地开展下去,Maven2.0能够在几分钟内达到您的要求。以下是Maven2.0的一些优点:

–标准的项目布局和项目结构生成器

–标准的依赖管理机制

–多项目支持

–在开发者需要的时候及时地下载新的插件和功能部件

–生成最新项目信息的网站

–集成了源代码控制软件:CVS和Subversion

以上列表展示的只是Maven2.0特点中的一小部分。但这足以使Maven2.0成为一个构建管理系统可靠的选择。既然我们已经知道Maven是个什么东西了,接下来让我们看看如何使用它。

入门

我们要做的第一件事情就是设置目录结构,但这并不需要让我们手动设置,Maven会根据您开发的项目类型来为您做这件事。一旦您下载并解压了最新发布的Maven 2.0,您应该将Maven所在目录下面的bin目录添加到您的系统路径下。您可以运行命令mvn -version来测试您的安装。

既然已经安装上了工具,让我们看看创建一个简单的Java项目的例子。Maven使用原型来决定目录结构是如何展现的。Maven自带了几个内建的原型,您也可以自定义原型。

mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app

您看,这就生成了我们的项目布局。

my-app

—-src

—-main

—-java

—-com

—-oreilly

—-test

—-java

—-com

—-oreilly

对,就这么简单。这种目录结构可以通过创建一个新的原型来覆写,但并不推荐这么做,因为Maven的一个优点就是使用标准的目录结构。该目录结构包含两个源代码树,一个是Java 应用程序的源代码,另一个是单元测试代码。同时您也许会注意到,当第一次运行Maven的时候,它会进行一些下载工作。当您开始调用工具时,Maven会根据您使用的插件来更新自身的一些所需功能。Maven默认会从Ibiblio存储库中得到更新。您可以在Maven安装目录下的conf目录中,或者项目自身中修改Maven远程存储库的选择。

您会发现Maven在my-app目录下创建了一个pom.xml文件。这是项目的最基本部分。pom.xml 文件包含了一组指令,这些指令告诉 Maven如何构建项目和包含哪些其它的特殊指令(POM 是“项目对象模型”的缩写)。在默认的情况下,Maven包含了JUnit的依赖以此来鼓励单元测试。

xsi:schemaLocation=”https://www.360docs.net/doc/c4521209.html,/POM/4.0.0

https://www.360docs.net/doc/c4521209.html,/maven-v4_0_0.xsd”>

4.0.0

com.oreilly

my-app

jar

1.0-SNAPSHOT

Maven Quick Start Archetype

https://www.360docs.net/doc/c4521209.html,

junit

junit

3.8.1

test

创建完项目后,我们可以往项目里添加代码并使用Maven的所有全新技巧。注意以下命令必须在pom.xml文件所在的目录中运行。

–mvn test:运行应用程序中的单元测试

–mvn package:依据项目生成jar文件

以备依赖此项目时使用 –mvn install:将项目的jar文件添加到库中,

–mvn site:生成项目相关信息的网站

–mvn clean:清除目标目录中的生成结果

–mvn eclipse:eclipse:生成Eclipse项目文件

接下来我们看看稍微复杂点的地方,我们知道手动开始一个Java web项目比手动开始一个简单的Java项目更耗时,然而Maven的使用则能化难为易。下面的例子(实际上是一行命令)展现了项目结构的构造。

mvn archetype:create -DgroupId=com.oreilly

-DartifactId=Oreilly

-DarchetypeArtifactId=maven-archetype-webapp

生成的结果结构如下所示:

Oreilly

—-src

—-main

—-resources

—-webapp

—-WEB-INF

这一次,我们的项目由于支持了将包含在war文件中的web资源而设置有所不同。pom.xml 文件中将包含一行来表明项目应该被打包成war文件:

war。现在就可以使用mvn package命令来生成war文件。不用担心如何从WEB-INF/lib目录中得到依赖项,在依赖属性值被设置成compile的情况下,Maven 会自动包含依赖项。也可以将以下代码添加到pom.xml文件中来改变war文件的名称:

PromoteC

依赖管理

创建好项目结构,添加完一些代码,测试并编译好应用程序后,接下来可以看看Maven是如何处理依赖关系的。为了给项目添加一个依赖项,必须将此依赖项添加到pom.xml文件中。下次运行Maven的时候,它将从Ibiblio存储库中得到这个依赖项,并且将此依赖项添加到项目构建路径中。

关于依赖的问题有几个重要的事情值得注意。在写这篇文章的时候,Maven中最大的麻烦之处就是不能从Maven存储库中获取Sun的jar文件。这个问题归因于Sun在其代码中设置的许可证限制。解决这个问题的办法有两种,一种是下载这些代码并将它们安装在您本地的存储库中,另一种是做一个外部声明,并将这个声明指向文件系统中依赖项所在的位置。希望Sun能够尽早地创建自己的存储库,尽管如此,Maven也会被升级来使之能够下载这些资源,只是在下载之前它会提示用户接受许可证协议。

另外一个麻烦的地方就是有时候使用的最新的库文件可能在远程存储库中不存在。另一种可能是由于无法访问Internet,需要所有的依赖项都能在本地获取。这些问题的最好解决方案就是将jar文件安装到本地的存储库中。将本地的存储库放在一台web服务器上也同样是个便利之举,这样整个开发团队就能从此获益,每个人都没有必要去管理自己的存储库了。改变Maven的存储库路径只需简单地编辑其安装目录下conf文件夹下面的settings.xml 文件即可。

在Maven中使用依赖是简单的。让我们看看往上述pom.xml文件中添加一个依赖项的情况。我们虽然已经使用了JUnit,但让我们将功能强大的Quartz库添加到项目中。Quartz是一款用纯Java编写的关于时间安排的开源项目,它是您时间安排需求方面的很好的选择。

quartz

quartz

1.5.1

compile

我们仅仅只需添加这个元素,Maven就能下载Quartz并将其作为项目中的一个依赖项。不用担心Quartz的依赖项,一个Maven的存储库将包含依赖项自身依赖的资源信息,当Maven 下载Quartz的时候,它自身的依赖资源也同样会被下载。为了验证版本为1.5.1的Quartz 存在于Ibiblio库中,我们可以浏览Maven存储库。注意到scope参数的使用,它告诉了 Maven 依赖项在何种阶段是所需的。在使用JUnit的情况下,我们设置scope参数的值为test来告诉Maven这个依赖项只是在测试阶段所需的,而不是运行时所需的资源。以下是scope参数值的说明:

–compile:默认值。表明是所有任务所需的资源

–test:运行所有的测试用例时所需资源

–runtime:表明是运行时所需资源

–provided:JDK部分或应用服务器的classpath所需的资源

现在,如何处理那些麻烦的Sun的jar包和那些需要但却不能在远程存储库中找到的jar包了?我们必须使用Maven来手动将这些jar包安装到本地的存储库中。不用担心,这没有听上去那么困难。为了做个示例,我们将安装Java Activation框架的jar包。首先我们必须从Sun的站点上下载此jar包,接着我们使用Maven将它导入本地的存储库中。您自己也可以按照 Maven上传资源指南中的指导将缺少的jar包安装到Ibiblio中。

mvn install:install-file -Dfile=activation.jar

-DgroupId=javax.activation -DartifactId=activation

-Dversion=1.0 -Dpackaging=jar

现在,新的jar包就像其它的项目依赖项一样安装到了本地存储库中。在只需添加依赖声明后,我们就已准备就绪了。在添加jar包和声明它们为依赖项时,必须确保版本信息的正确性。版本的不匹配会导致Maven在寻找资源时的失败。在导入Sun的jar包时,如果您需要寻求标准命名参数的帮助,可以参考Sun标准jar包命名。记住,在目前您不能通过存储库来公开发布这些jar包,这将违反Sun的使用条款。

javax.activation

activation

1.0

compile

您或许想将依赖项存入一个源代码控制器的库中,源代码控制器决不能执行这个任务。依赖项是经常变化的,并且通常有一套数字方案来标明其版本。这就是说,您明确地希望有一个内部远程存储库的备份,如果您有一个,这将确保在存储库服务器崩溃并且不能恢复的情况下,您不会丢失所有的自定义资源。不将依赖项放入源代码控制器中也会节省源代码控制器的存储库服务器上的大量磁盘空间。

配置存储库

要求项目的每个开发者必须在conf目录中配置存储库是不方便的,所以Maven可以同时查看多个存储库并且将它们全部配置在pom.xml文件中。让我们看看一个例子,它展示了如何在应用程序用使用多个存储库。在以下从pom.xml文件摘录的片断中,我们设置了两个存储库来让Maven寻找依赖项。Ibiblio一直是默认的存储库,我们又添加了Planet Mirror作为后援存储库。我们也可以让团队使用的本地web服务器作为第二个存储库。

Ibiblio

Ibiblio

https://www.360docs.net/doc/c4521209.html,/maven/

PlanetMirror

Planet Mirror

https://www.360docs.net/doc/c4521209.html,/pub/maven/

使用pom.xml父文件来构建多个项目

软件公司通常的一种做法就是将多个项目构建到主要产品中。维护依赖关系链和一次性地构建整个产品足以成为一个挑战,但是如果使用Maven的话,事情将变得简单。如果您创建了一个指向其它子模块的pom.xml父文件,Maven将为您处理整个构建过程。它将分析每个子模块的pom.xml文件,并且按照这些子模块的相互依赖顺序来构建项目。如果每个项目明确地指明它们的依赖项,那么子模块在父文件中的放置顺序是不造成任何影响的。但是考虑到其他的开发者,最好保证子模块在pom.xml父文件中的放置顺序和您期望的子项目被构建的顺序一样。下面我们看个示例。

pom.xml主文件如下:

4.0.0

com.oreilly

1.0-SNAPSHOT

my-app

pom

Common

Utilities

Application

WebApplication

我们需要确保WebApplication子模块包含了所有的三个jar包,所以需要将这些jar包声明为依赖项。在这个例子中, Utilities项目依赖于Common项目,所以Utilities项目中需要添加一个对Common项目的依赖。Application子模块也是同样的道理,因为它依赖于Common和Utilities项目,Utilities又赖于Common。如果这个例子中有60个子模块,并且它们都相互依赖,这会使得新开发者难以算出什么项目依赖于其它项目,所以这正好是要求确保pom.xml父文件中项目放置顺序要清除的原因。

以下是Utility模块的依赖项:

com.oreilly

Common

1.0-SNAPSHOT

以下是如何声明Application模块的依赖项:

com.oreilly

Common

1.0-SNAPSHOT

com.oreilly

Utilities

1.0-SNAPSHOT

最后是WebApplication模块的依赖项:

com.oreilly

Common

1.0-SNAPSHOT

com.oreilly

Utilities

1.0-SNAPSHOT

com.oreilly

Application

1.0-SNAPSHOT

现在,我们只需为每个子模块的pom.xml文件添加一个元素来表明它们是一个逻辑构建的一部分:

com.oreilly

my-app

1.0-SNAPSHOT

在pom.xml父文件所在的同一个目录中,存在有项目目录:Common, Utilities, Application, 和WebApplication。当我们在该目录中运行mvn package命令时,这些项目会按照依赖顺序而被构建。

插件和报表

Maven2.0有大量的插件可以使用。不幸的是,由于Maven的重写,Maven1.0的插件不能在2.0中使用。尽管如此,还是存在一些可以使用的Maven2.0的插件。下面pom.xml文件中的插件配置示例是直接从Maven2.0网站上得来的。这个插件是用来配置编译选项的。

org.apache.maven.plugins

maven-compiler-plugin

1.5

1.5

Maven报表插件可以用来生成不同的报表,这些报表是在当你使用mvn site命令生成项目的站点时产生的。下面的例子展示了如何使用元素来配置这类插件中的一个。

org.apache.maven.plugins

maven-project-info-reports-plugin

Maven Plugin Matrix是一个十分实用的工具,它能给出哪些Maven插件适合于哪些版本的Maven。

Maven 和 Eclipse如何能使全世界最好的IDE变得更好了?答案是使用Maven2的插件,它能帮助您寻找依赖项并自动地将它们添加到pom.xml文件中。虽然最好的方法是首先使用Maven来创建您的项目,然后再用命令mvn eclipse:eclipse来生成Eclipse项目文件,这样最初就能得到一个好的目录结构,但Maven也可通过其Eclipse插件来管理任何项目。您可以在Eclipse自身的升级器中输入站点https://www.360docs.net/doc/c4521209.html,/ 来安装插件。在安装完成并重启IDE后,您需要在Eclipse的参数选项中配置此插件,设置本地存储库的

位置。这是很重要的一步,因为如果 Eclipse默认的存储库不能匹配您默认的需求,Maven 会重新下载您的依赖项。配置完成后,将项目导入Eclipse,鼠标右击该项目,选择 Maven 2 -> Enable。现在您可以回到之前的步骤,您可以有更多的选项比如添加依赖项,这将弹出一个搜索框,您可以搜索依赖项并添加它们,插件会替你编辑 pom.xml文件。

插件会使用Maven来构建您的项目,就像Eclipse使用Ant来构建项目一样。如果您想获取更多的关于Eclipse整合Maven的信息,可以查阅Maven站点上的Eclipse集成Maven 2.x 使用指南。

另一方面,如果您是一个IntelliJ使用爱好者,您也能通过运行指令mvn idea:idea来完成同样的任务。这些IDE 工具能够节省开发人员的时间。例如,如果一个开发人员为一个项目添加了一些特征,团队里的其他开发人员只需从源代码控制器的存储库中重新获取项目文件即可,这就节省了每个开发人员必须配置IDE的时间。

结论

Maven2.0有着许多实用的特点,并且完成任务十分出色。Maven中最值得称赞的地方就是使用了标准的目录结构和部署。这就使得开发人员能够适应不同的项目,并且不用学习任何结构方面新的东西,也不用掌握特殊的指令来构建结构。Maven可以通过纯脚本来实现。在文档方面,由于使用了项目站点构建工具,所以当项目构建完成后,您可以查看所有开发的当前状态。

毫无疑问,当提到构建配置的伸缩性,易用性和项目管理方面时,Maven2.0足可以将Ant取而代之。在接下来的几年内,我们将看到Maven作为标准构建技术更多的使用,直到有人带来了大家公认的“高级捕鼠器”。您可以从下面列出的Maven项目站点上下载Maven。

资源

Matrix:https://www.360docs.net/doc/c4521209.html,

Onjava:https://www.360docs.net/doc/c4521209.html,

Maven项目站点

相关文档_

使用ant发布war包build.xml的配置[转]

使用Maven构造Turbine项目

用Maven进行项目管理

Magic Maven

Maven安装全程指南

maven2.0学习笔记

Maven最初的目的是在Jakarta Turbine项目中使构建处理简单化。几个项目之间使用到的Ant build文件差异很小,各个JAR都存入CVS。因此希望有一个标准的方法构建各个工程,

清晰的定义一个工程的组成,一个容易的方法去发布项目信息并且去提供一种在各个项目之间共享JAR包。

结果出现了一种功能能用于构建和管理任何基于java的工程。Maven小组希望他们已经做到了一些事情,这将有助于Java开发者更容易的完成每天的工作并且有助于理解任何基于java的项目。

Maven的目标是:

?使构建过程更容易

?提供统一构建系统

?提供高质量的项目信息

?提供开发的最佳实践指南

?能无缝的加入新的特性

对Maven的错误理解

?Maven是一个站点和文档制作工具。

?Maven扩展了Ant,使其能下载到各种依赖包

?Maven是一系列可重用的Ant脚本

Maven的版本。

Maven现在主要有Maven 1.x和Maven 2.x,其中现在最新版本是Maven 2.02。

Maven 2完成了对Maven 1的重写。重写的首要目的是要提供了强大的Jave构建和包含API 的项目,允许Maven被植入任何地方,尤其是高级别的产品如IDEs、质量工具、报告工具等这些。Maven 2构建生命周期的概念正式化,其比Maven更易扩展。

因此现在我们主要研究的就是Maven 2。

Maven的安装

1.Windows 2000/xp下的安装

1.解压缩maven-

2.0.2-bin.zip到你希望安装Maven 2.0.2的所在目录。这里假

设你选择了C:\ProgramFiles\Apache Software Foundation\maven-2.0.2.

2.将C:\Program Files\Apache Software Foundation\maven-2.0.2\bin目录加

入到你的%path%环境变量中。

3.同时,确认JAVA_HOME是否正确设置成功。

4.运行 mvn --version 确认是否安装成功。

显示Maven version: 2.0.2 则表示安装成功。

2.基于Unxi-based的操作系统(Linux,Solaris and Mac OS X)

1.解压缩发布包到你希望安装Maven

2.0.2的所在目录。这里假设你选择了

/usr/local/maven-

2.将/usr/local/maven-2.0.2/bin目录加入到你的path环境变量中,例如:

PATH=/usr/local/maven-2.0.2y/bin: $PATH。

3.同时,确认JAVA_HOME是否正确设置成功。

4.运行 mvn --version 确认是否安装成功。

显示Maven version: 2.0.2 则表示安装成功。

Maven主要功能列表

Maven是一种对项目的管理工具,它提供了一种方式来管理以下项目中涉及到的工作内容,同时以下也是Maven的主要功能:

?构建项目(Builds)

?文档编制(Documentation)

?报告(Reporting)

?依赖管理(Dependencies)

?配置管理(SCMs)

?发布管理(Releases)

构建项目

1.首先创建一个Maven工程

Maven可用于构建java应用工程和java web应用工程。

1.WebApp

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp

-DarchetypeArtifactId=maven-archetype-webapp

my-webapp

|-- pom.xml

`-- src

`-- main

|-- webapp

| |-- WEB-INF

| | `-- web.xml

| `--index.jsp

`-- resources

其他的目录则需要自己补充。

其pom.xml文件内容如下:

xmlns:xsi="https://www.360docs.net/doc/c4521209.html,/2001/XMLSchema-instance

" xsi:schemaLocation="https://www.360docs.net/doc/c4521209.html,/POM/4.0.0

https://www.360docs.net/doc/c4521209.html,/maven-v4_0_0.xsd">

4.0.0

com.mycompany.app

my-webapp

war

1.0-SNAPSHOT

Maven Webapp Archetype

https://www.360docs.net/doc/c4521209.html,

junit

junit

3.8.1

test

my-webapp

2.App

mvn archetype:create -DgroupId=com.mycompany.ap -DartifactId=my-app

命令正确执行后,生成如下目录:

my-app

|-- pom.xml

`-- src

|-- main

| `-- java

| `-- com

| `-- mycompany

| `-- app

| `-- App.java

`-- test

`-- java

`-- com

`-- mycompany

`-- app

`-- AppTest.java

其pom.xml文件内容如下:

xmlns:xsi="https://www.360docs.net/doc/c4521209.html,/2001/XMLSchema-instance

" xsi:schemaLocation="https://www.360docs.net/doc/c4521209.html,/POM/4.0.0

https://www.360docs.net/doc/c4521209.html,/maven-v4_0_0.xsd">

4.0.0

com.mycompany.ap

my-app

jar

1.0-SNAPSHOT

Maven Quick Start Archetype

https://www.360docs.net/doc/c4521209.html,

junit

junit

3.8.1

test

2.Maven项目的标准目录介绍

Maven提倡使用一个共同的标准目录结构,使开发人员能在熟悉了一个Maven工程后,对其他的Maven工程也能清晰了解。这样做也省去了很多设置的麻烦。

以下的文档介绍是Maven希望的目录结构,并且也是目录创建工程是采用的目录结构。Maven 推荐大家尽可能的遵守这样的目录结构。

src/main/java Application/Library sources

src/main/resources Application/Library resources

src/main/filters Resource filter files

src/main/assembly Assembly descriptors

src/main/config Configuration files

src/main/webapps Web application sources

src/test/java Test sources

src/test/resources Test resources

src/test/filters Test resource filter files

src/site Site

LICENSE.txt Project's license

README.txt Project's readme

在顶级目录上是工程的描述文件pom.xml(如果使用Ant则还包括其他属性文件,maven.xml或build.xml),另外还包括提供给最终用户的文件,如,README.txt, LICENSE.txt等等。

顶级目录还包括两个子目录:src,target。顶级目录下可能出现的其他目录仅仅是CVS或.svn 和其他多模块工程的工程目录,最好不要再有其他目录。

Target目录是所有工程编译构建的输出目录。

Src目录包含所有工程的源码文件,配置文件,资源文件等等。它下面的子目录一般包含main (主要的工程源文件),test(测试文件),site(项目站点文件)。

3.项目构建的生命周期的介绍

Maven 2是围绕着构建生命周期概念设计的。这意味着,构建或者发布的过程已经被清晰的定义了。

当我们使用Maven构建工程时,我们只需要了解几个Maven定义好的命令即可,其他的工作则交给POM来完成。

以下给出Maven提供的构建生命周期列表:

validate validate the project is correct and all necessary information is available.

generate-sources generate any source code for inclusion in compilation.

process-sources process the source code, for example to filter any values.

generate-resources generate resources for inclusion in the package.

process-resources copy and process the resources into the destination directory, ready for packaging.

compile compile the source code of the project.

process-classes post-process the generated files from compilation, for example to do bytecode enhancement on Java classes.

generate-test-sources generate any test source code for inclusion in compilation.

process-test-sources process the test source code, for example to filter any values.

generate-test-resources create resources for testing.

process-test-resources copy and process the resources into the test destination directory.

test-compile compile the test source code into the test destination directory

test run tests using a suitable unit testing framework. These tests should not require the code be packaged or deployed.

package take the compiled code and package it in its distributable format, such as a JAR.

pre-integration-test perform actions required before integration tests are executed. This may involve things such as setting up the required environment.

integration-test process and deploy the package if necessary into an environment where integration tests can be run.

post-integration-test perform actions required after integration tests have been executed. This may including cleaning up the environment.

verify run any checks to verify the package is valid and meets quality criteria.

install install the package into the local repository, for use as a dependency in other projects locally.

deploy done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.

因此,当我们构建一个项目时,只需要了解自己希望做什么,然后执行以上对应的生命周期即可。

例如,我们希望编译我们的工程。在命令行状态下进入到工程的pom.xml文件所在的目录中,使用命令:mvn compile;希望构建打包我们的工程,使用mvn package即可。

当然了,maven的构建生命周期也是可以扩展和自定义的,这里就先不做介绍了。

4.pom.xml的介绍

pom.xml包含了一个项目的项目对象模型(POM)。项目对象模型(POM)是Maven工作的基本单元。请记住,这个是非常重要的,因为POM包含了工程的非常重要的信息块,并且基本上包含了和项目相关的任何要素。

让我们熟悉一下pom.xml包含的基本项:

?poject 这是pom.xml的顶级元素。

?modelVersion 这是元素指出了这个POM使用的是那个版本的对象模型。这个模型的版本自身么是经常改变的,但这种改变是为了使模型更加的稳定。

?groupId 这个元素指出创建这个工程的组织或团队的唯一标识,并且这个也是一个项目的关键标识,推荐使用这个组织或团队的完整域名。例如:

org.apache.maven.plugins是为Maven plug-ins定义的groupId。

?artifactId 这个元素指出这个工程的主要制品的基本名称。一个工程的主要制品如果是jar文件,次要制品如果是源码包,则次要制品的名称的一部分也使用artifactId。

典型的制品名称使用这样的格式:-.(例如,

myapp-1.0.jar)。

?packaging这个元素指出制品的类型(例如:JAR,WAR,EAR等等)。这个元素不仅仅指示出制品的类型,同时也指示出工程构建过程中的部分生命周期。Packaging的默认值是JAR。

?version 这个元素指出这个项目产生的制品的版本号,Maven在帮助开发人员管理版本号时走了很长的路,以后你将经常看到SNAPSHOT在一个版本中,这个表示一个工程仍然在开发状态。

?name 这个元素指出这个工程显示的名称。这个常用于Maven产生的文档中。

?url 这个员算指出在哪里能发现工程的站点。这个常用于Maven产生的文档中。

?desription这个元素提供了这个工程基本的描述。这个也常用于Maven产生的文档中。

以上只是pom.xml中的一些基本项,完整的pom.xml的元素介绍请参考:

https://www.360docs.net/doc/c4521209.html,/maven-model/maven.html

文档编制

1.文档创建:

对于如何创建和编制文档,maven有一个简单的示例命令:

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app

-DarchetypeGroupId=org.apache.maven.archetypes

-DarchetypeArtifactId=maven-archetype-site

执行了以上命令后,我们将得到这样一个目录结构:

my-app

|-- pom.xml

`-- src

|-- site

|-- apt

| |-- format.apt

| `-- index.apt

|-- fml

| `-- faq.fml

|-- fr

| |-- apt

| | |-- format.apt

| | `-- index.apt

| |-- fml

| | `-- faq.fml

| `-- xdoc

| `-- xdoc.xml

|-- site.xml

|-- site_fr.xml

`-- xdoc

`-- xdoc.xml

你现在可以看到一个$basedir/src/site目录,以及它包含的一些站点描述文件(site.xml,site_fr_xml),和各种maven支持的文档格式相对应的目录和示例文档都已经产生。

以上的创建只是示例,我们自己创建时就没有命令行使用了,只能按照上面的目录结构创建我们需要的文档,并在文档中写入我们工程的信息。

让我们再来看看maven所支持的文档格式。

2.文档格式:

Maven支持3种文档格式:

?Xdoc format

这个是一种简单快捷的,基于original Anakia format的文件格式。

?APT format

“Almost Pla in Text”,(接近普通文本格式),这是一种允许你采用接近普通文本格式的方式简单的写出类似于wiki格式的结构性文档。

如果你对此很感兴趣,请参考完整的APT format的书写规范

https://www.360docs.net/doc/c4521209.html,/guides/mini/guide-apt-format.html

?FML formate

这个是一种FAQ结构形式的文档格式。

了解了以上的文档格式,我们就可以按照以上文档格式的要求,选用我们喜欢的文档格式编写我们的文档。当编写完成后,我们需要生成所有文档。这里生成文档,maven的处理是生成站点(site),也就是身成html页面,这样所有对此项目感兴趣的人员都可以通过访问此站点来了解所有的信息。生成站点的命令是:

mvn site

3.文档国际化:

当然,你可能早就想到文档国际化的问题,这里maven也早就处理了。在pom.xml中

...

org.apache.maven.plugins

maven-site-plugin

en,fr

...

注意到en,fr了吗?这里就支持了英语(en)和法语(fr)两种语言的文档。请注意以下生成的目录,由于英语是在第一个,属于默认语言,所以$basedir/src/site目录下并没有en的文件夹,而有fr的文件夹,而且这个文件夹里包含了maven支持的文档格式相对应的目录和示例文档。

报告设置

Maven有多个报告能添加在你的文档站点中,来显示项目当前的状态,这些报告采用插件的形式可在项目中配置。

为了为你的文档站点增加这些报告,必须增加reporting部分在pom.xml中,下面这个为标准的项目信息报告插件在pom.xml中的配置。

...

org.apache.maven.plugins

maven-project-info-reports-plugin

...

Maven在执行mvn site命令时,除了产生开发人员编制的文档信息外,根据pom.xml中设置的报告,会同时生成这个项目信息的报告文档。并且这个是默认的生成项。

这个默认的生成项将根据项目的信息生成以下报告:

?持续集成信息(Continuous Integration)

?依赖性信息(Dependencies)

?发布追踪信息(Issue Tracking)

?邮件列表信息(Mailing Lists)

?工程协议信息(Project License)

?项目团队信息(Project Team)

?源码库信息(Source Repository)

根据笔者测试,以上信息均是在pom.xml进行设置的。

?持续集成信息根据以下配置信息生成:

依赖性信息根据以下配置信息有关

安装maven步骤

maven3 安装: 安装Maven 之前要求先确定你的JDK 已经安装配置完成。Maven是Apache 下的一个项目,目前最新版本是3.0.4,我用的也是这个。 首先去官网下载Maven:https://www.360docs.net/doc/c4521209.html,/dyn/closer.cgi/maven/binaries/apache-maven-3.0.4-bin.tar.gz 下载完成之后将其解压,我将解压后的文件夹重命名成maven,并将它放在D:\Server 目录下,即maven 最终的路径是:D:\Server\maven 配置maven 环境变量: 系统变量:MAVEN_HOME = D:\Server\maven 用户变量:path = %MAVEN_HOME%\bin 相信大家都有配过环境变量的,详细步骤就不说了,对着把属性名和属性值配上的OK 了。 打开cmd,在里面敲:mvn -version 如果能打印如上信息,说明到此Maven3 已经在你的电脑上安装完成。 mvn 是mavn 的一个指令,mvn -version 是查看版本信息,我的操作系统是32位的WIN7,安装的maven 是3.0.4 如果能打印如上信息,说明到此Maven3 已经在你的电脑上安装完成。 修改maven 仓库存放位置: 找到maven 下的conf 下的settings.xml 配置文件,我的是在D:\Server\maven\conf\settings.xml maven 的仓库默认是放在本地用户的临时文件夹下面的.m2 文件夹下的repository 下,我的是在C:\Users\admcnm\.m2\repository 目录下, 现在我们来修改将它指定到我们自己的路径下,我现在要将仓库指定到D:\Repositories\Maven 目录下,只需要将上面注销的本地仓库打开,

使用Eclipse构建Maven的SpringMVC项目

使用Eclipse构建Maven的SpringMVC 项目 首先Eclipse需要安装Maven的插件,地址:https://www.360docs.net/doc/c4521209.html,/sites/m2e。 用MyEclipse安装Maven插件,建出的Maven项目有些问题。一是,发布tomcat的时候resources总是不会被发布到tomcat下;二是,把WEB-INF下的classes改到target下的classes,但是不知道为什么MyEclipse要么仍然在WEB-INF下生成class。要么真不在WEB-INF生成classes 了但是发布tomcat的时候,class文件一个都不会给你发布过去,超级郁闷。但是使用Eclipse构建Maven项目后,使用MyEclipse打开就没问题了。 用maven的好处:我感觉最主要就是自动下载jar包和它所依赖的包,这样可以保证了多人开发时jar版本不同的问题。再就是文件结构清晰,java文件,资源文件,测试文件都分的很清楚。 将介绍两种方法:一,直接建立Maven项目方法;二、建立Dynamic Web project转成Maven 项目方法。 1,建立Maven项目 接下来使用Eclipse的maven构建一个web项目,以构建SpringMVC项目为例: 1.1 选择建立Maven Project 选择File -> New -> Other,在New窗口中选择Maven -> Maven Project。点击newxt。

1.2 选择项目路径 Use default Workspace location默认工作空间。

Maven学习总结——使用Maven构建多模块项目

Maven学习总结(八)——使用Maven构建多模块项目 在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为domain(域模型层)、dao(数据库访问层)、service(业务逻辑层)、web(表现层),这样分层之后,各个层之间的职责会比较明确,后期维护起来也相对比较容易,今天我们就是使用Maven来构建以上的各个层。 项目结构如下: system-parent |----pom.xml |----system-domain |----pom.xml |----system-dao |----pom.xml |----system-service |----pom.xml |----system-web |----pom.xml 一、创建system-parent项目 创建system-parent,用来给各个子模块继承。 进入命令行,输入以下命令: mvnarchetype:create -DgroupId=me.gacl -DartifactId=system-parent -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 如下图所示: 命令执行完成之后可以看到在当前目录(C:\Documents and Settings\Administrator)生成了system-parent目录,里面有一个src目录和一个pom.xml文件,如下图所示: 将src文件夹删除,然后修改pom.xml文件,将jar修改为pom,pom表示它是一个被继承的模块,修改后的内容如下: 1 3 4.0.0 4 5 me.gacl

使用Eclipse构建Maven的Web项目

一、直接建立Maven项目方法 1,建立Maven项目 接下来使用Eclipse的maven构建一个web项目,以构建SpringMVC项目为例:1.1 选择建立Maven Project 选择File -> New -> Other,在New窗口中选择Maven -> Maven Project。点击newxt。 1.2 选择项目路径 Use default Workspace location默认工作空间。

1.3 选择项目类型 在Artifact Id中选择maven-archetype-webapp

1.4 输入Group ID和 Artifact ID,以及Package Group ID一般写大项目名称。Artifact ID是子项目名称。 例如Spring的web包,Group ID:org.springframework,artifactId:spring-web。 Package是默认给你建一个包,不写也可以。

1.5 刚建立好后的文件结构如下图 如果这里显示的内容多,一般是Filters设置的问题。或perspective为JavaEE模式,改成Java模式就可以了。

2,配置项目 接下来就需要更改好多配置了。 2.1 添加Source文件夹 接下来需要添加src/main/java,src/test/java ,src/test/resources三个文件夹。右键项目根目录点击New -> Source Folder, 建出这三个文件夹。注意不是建普通的Folder,而是Source Folder。

Maven源配置教程

Maven安装及基本使用 1、安装maven首先到maven官网下载maven安装包, Maven下载地址, 下载apache-maven-3.3.9-bin.zip文件 > 由于当前系统为windows, 所以下载apache-maven-3.3.9-bin.zip文件; 如果您使用的系统为unix类系统请下载apache-maven-3.3.9-bin.tar.gz文件 > > 注: 由于maven是依赖于jdk的, 所以在安装maven前需要提前准备好jdk环境。jdk的安装方式不是本文的重点, 所以本文不进行展开说明了。 右键解压apache-maven-3.3.9-bin.zip文件到当前目录中即可 >如果您使用的为unix环境, 以CentOS为例, 使用以下命令进行解压 tar -zxvf apache-maven-3.3.9-bin.tar.gz 到此maven已经安装完成。 为了之后使用方便,所以需要将maven添加到环境变量中, 配置方式: 右键 "我的电脑" -> 选择 "属性" -> 选择 "高级系统设置" -> 选择 "高级" 标签页 -> 选择 "环境变量" 在新打开的窗口中的"系统变量"中新建变量名为"MAVEN_HOME", 变量值为 maven解压后的路径, 例如: E:-maven-3.3.9 然后编辑环境变量PATH, 在PATH的环境变量值的尾部添加";%MAVEN_HOME%", 一路确认后即添加成功。注: windows中多个环境变量的值需要用";"分隔 unix系统中环境变量的配置方式, 以CentOS为例: 使用以下方式为当前用户添加maven的环境变量打开~/.bashrc文件并在文件末尾添加以下内容 vim ~/.bashrc MAVEN_HOME=/opt/apache-maven-3.3.9 PATH=$PATH:$MAVEN_HOME/bin export MAVEN_HOME PATH 保存并退出, 并使用下面的命令使新添加的环境变量立即生效

maven2+struts2 使用maven一步步搭建ssi ssh框架

MA VEN2 学习笔记(一步步搭建ssi项目) IDE工具为idea 10.5.1 首先配置maven环境,不配置也行,只要将maven包下载解压缩,然后在idea中设置file-setting maven home directory为你的maven文件夹地址就可以了 1. 用Maven2 搭建struts 2.18项目 IDE工具为idea 10.5.1

先创建项目骨架部分 mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp 命令说明: archetype groupId 项目的java包结构:com artifactId 项目的名称:certusSimple archetypeArtifactId(项目骨架的类型): * maven-archetype-archetype * maven-archetype-j2ee-simple * maven-archetype-mojo * maven-archetype-portlet * maven-archetype-profiles (currently under development) * maven-archetype-quickstart * maven-archetype-simple (currently under development) * maven-archetype-site * maven-archetype-site-simple, and * maven-archetype-webapp Pom.xml文件

通向架构师的道路(第二十三天)maven与ant的奇妙整合

分类:架构师之路 目录(?)[+] CSDN学院讲师招募,诚邀您加入!博客Markdown编辑器上线啦PMBOK第五版精讲视频教程火星人敏捷开发1001问 通向架构师的道路(第二十三天)maven与ant的奇妙整合 2012-11-19 12:0420673人阅读评论(32)收藏举报 ant eclipse Eclipse maven Maven ssh SSH SSh整合 一、前言 我们在《万能框架spring》前四天中都用到了maven,接下去要讲述在SSX这样的架构下我们的“单元测试”是怎 么进行的,但是在此之前我们再来深入入解一下maven,因为我们的单元测试需要用到的是junit+ant+junitreport 这样的组合。而。。。。。。由于我们已经使用了maven,那么我们如何可以延续经典的junit+ant这样的单元测 试的组合呢?其答案就是把maven和ant再进行组合一下。 二、用Maven任务在Ant中使用Maven依赖 Maven的一个重要特性是使用中央仓库,存储依赖和识别应用程序所需的库。Maven2还支持传递依赖 (transitivedependency),这是一个强大的概念,它将用户需要声明的依赖限制到最小程度。Ant不支持“即开 即用”的依赖管理。在Ant项目中,应用程序所需的全部程序库通常都存放在一个项目目录中。 三、使用maven-ant-task 3.1安装maven-ant-task 我们先下载maven-ant-tasks-2.1.3.jar(我也已经上传到了“我的资源”里了); 下载完后把它放到我们的ant的lib目录下; 3.2 打包工程 这是一个传统的没有使用maven依赖库的ant的打包流程,从图上看很清晰,对吧? 在前面说了,ant打包时是需要所有的.jar文件都是事先已经在工程的WebContent/WEB-INF/lib目录下了,这也 是大都数人所熟悉的。 但是Maven打包,就一个包依赖声明文件pom.xml,然后在打包时缺什么jarMaven会自动帮我们去下载,所以说原创:转载: 译文:评论: 个人资料 红肠啃僵尸 访问: 积分: 等级: 排名: 文章搜索 博客专栏 think in java interview 文章:12篇 阅读:126219 架构师修练之道 文章:45篇 阅读:1012191 文章分类 架构师之路 随笔 面经 文章存档 2015年03月 2015年02月 目录视图摘要视图订阅lifetragedy的专栏 吾以吾血荐我中华之IT 登录 | 注册 1212560次 10345 第539名 68篇0篇 0篇1954 条 (36) (1) (12) (1) (3)

sonar+maven2使用说明(最终版)

一、sonar环境搭建 1、安装JDK-1.5以上版本。 在环境变量中配置JAVA_HOME,并在path里添加%JAVA_HOME%\bin; 2、安装mysql-5.x以上版本。 3、mysql新建数据库并增加权限 CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; GRANT all ON sonar.* TO sonar@localhost IDENTIFIED BY ‘sonar’; FLUSH PRIVILEGES ; 4、在sonar官网https://www.360docs.net/doc/c4521209.html,上下载并解压sonar-2.8.zip,不要放在中文目录下。 5、配置sonar-2.8\conf\sonar.properties文件: 1)配置启动的http端口 sonar.web.host: localhost sonar.web.port: 9000 sonar.web.context: / 三句前本来被注释,取消注释 2)注释掉Derby数据库绑定(49、50行) #sonar.jdbc.url:

jdbc:derby://localhost:1527/sonar;create=true #sonar.jdbc.driverClassName: org.apache.derby.jdbc.ClientDriver 3)取消mysql连接的注释 #----- MySQL 5.x/6.x # Comment the embedded database and uncomment the following properties to use MySQL. The validation query is optional. sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&character Encoding=utf8 sonar.jdbc.driverClassName: com.mysql.jdbc.Driver sonar.jdbc.validationQuery: select 1 运行sonar-2.8\bin\windows-x86-32\StartSonar.bat,打开相应的网页:http://localhost:9000测试是否配置成功,这里的页面链接跟前头的http配置有关 第三条,也就是说,把sonar.properties 文件修改成以下内容: # Listen host/port and context path (for example / or /sonar). Default values are localhost:9000/.

maven心得

maven使用经验与心得整理 概述 日常开发中,我们用到的maven相关功能大概一下几种: 1、管理jar依赖 2、构建项目(打包、编译等) 3、发布项目(共享、上传至服务器、供他人使用) 简单介绍 1、管理依赖 jar一般在pom.xml文件的中配置,以spring core为例,一般格式如下: 其中groupId一般为项目(jar war pom等)的发布机构名称; artifactId为项目名称; version为项目版本; 在项目编译打包的时候,ide会自动到maven仓库去查找相应的jar文件,打包并存放在项目的相应路径下(如web项目的lib目录下) 2、构建项目: 这里所说的构建项目主要指打包、编译、运行测试用例等操作,即maven的生命周期中的打包过程。 最常用的就是compile了,一般项目修改代码以后都要重新编译,然后加载到tomcat中运行调试。 其它的还有clean、package等比较常用的操作,请见详细说明–生命周期部分 3、发布项目: 如果我们写一些通用框架,或者自己封装了一些常见的工具类,想要打包为jar并且供他人使用,那么我们可以通过maven发布到公共仓库(私服)供他人下载依赖使用。 比如每个公司都会有自己的框架,持久层、控制层或者其它功能等。当我们没有使用maven 的时候,我们是直接把别人的jar拷贝到项目的library目录下,而现在我们有了maven就不用自己到处拷贝jar包了,只需要在发布的时候找到别人发布到仓库时候写的groupId artifactId version等信息就能直接添加依赖了,也就是相当于第一步的依赖管理。 4、多模块

maven_构建系统项目的基本流程及程序部署流程

以本机路径为例子 1、打sr.jar包 1.1、进入D:\maventest\srjar 更新sr的源程序代码; 1.2、通过dos进入D:\maventest\srjar ,执行mvn clean 先清除一下上次编译的文件; 1.3、执行mvn package -DartifactId=sr-3. 2.1 命令将新程序打包(sr- 3.2.1 为jar名和版本号); 1.4、执行完成后会在srjar\target下生成sr-3. 2.1.jar 2、打sr.war包 2.1 进入D:\maventest\srwar 更新srwar的源程序代码; 2.2 将上面产生的sr- 3.2.1.jar拷到webapp\WEB-INF\lib下(记得要把sr.jar的上一个版本给删掉,只保留最新的sr.jar); 2.3 通过dos进入D:\maventest\srwar ,执行mvn clean 先清除一下上次编译的文件; 2.4 执行mvn package 命令将新程序打包成war; 2.5 执行完成后会在D:\maventest\srwar\target下生成sr.war 3、打km100survey.war包 3.1 进入D:\maventest\km100surveywar 更新程序 3.2 将 1.1-1.4 生成的sr 的jar包拷贝到public_html\WEB-INF\lib 和D:\km100surveylib 文件夹下(删除同名的sr.jar包); 3.3 修改km100surveywar 中的pom.xml 文件: 3.3.1 找到 sr sr 3.2.1 system d://km100surveylib/sr-3.2.1.jar 将version 设置为新的sr 版本号systemPath 中的jar 改为最新的文件名; 3.4 通过dos进入D:\maventest\km100surveywar ,执行mvn clean 先清除一下上次编译的文件; 3.5 执行mvn package 命令将新程序打包成war; 3.6 执行完成后会在D:\maventest\km100surveywar\target下生成km100survey.war 4、执行完以上步骤后打包就完成了。 5、由于svn上程序的配置文件和服务器上的不同,因此在发布到线上服务器时需要修改一些配置文件。 6、为了管理每次发布的包,在本地的E:\surveyRelease下建立文件夹进行管理,结构参照已有的文件. 补充tomcat发布步骤及注意事项:

通过CXF开发webService接口(soap协议、maven项目)

1. 引入cxf的jar包 pom文件里面直接增加依赖 < dependency> junit junit 4.11 test org.springframework spring- webmvc 4.0.0.RELEASE org.apache.cxf apache-cxf 2.4.3 pom 2. 配置web.xml文件 < web-app xmlns= "https://www.360docs.net/doc/c4521209.html,/xml/ns/javaee" xmlns:xsi= "https://www.360docs.net/doc/c4521209.html,/2001/XMLSchema-instance" xsi:schemaLocation= "https://www.360docs.net/doc/c4521209.html,/xml/ns/javaee https://www.360docs.net/doc/c4521209.html,/xml/ns/javaee/web-app_3_1.xsd" version= "3.1" > < display-name >Archetype Created Web Application < context-param > contextConfigLocation classpath:config/spring/metadata WebService-spring.xml org.springframework.web.conte xt.ContextLoaderListener

Maven项目开发环境搭建

JDK安装 Maven安装 Eclipse安装 ?Svn插件安装 ?Maven插件安装 JDK安装:版本1.5.0_06(小版本可忽略,建议保持一致) Maven安装:(参见Maven开发手册) 1、下载地址https://www.360docs.net/doc/c4521209.html,/download.html 2、解压到D盘,D:\maven-3.0 3、在环境变量path中添加D:\maven-3.0\bin路径。 4、在命令行下输入: mvn –version,出现 说明安装正确。 Eclipse安装: 1、下载Eclipse IDE for Java EE Developers(3.6), 地址https://www.360docs.net/doc/c4521209.html,/downloads/ 2、解压运行eclipse 3、安装svn插件 点击help->Install New Software… 点击Add…

输入插件名称(可任意输入)和插件地址https://www.360docs.net/doc/c4521209.html,/update_1.6.x 点击OK 勾选列表框中插件,按照提示一直点击next即可安装完成。 4、安装maven插件 同上方法安装maven插件。 M2eclipse 地址:https://www.360docs.net/doc/c4521209.html,/sites/m2e M2eclipse-extra地址:https://www.360docs.net/doc/c4521209.html,/sites/m2e-extras 5、Checkout出项目源码; 1)、切换至SVN视图

2)、右键点击空白处:新建->资源库位置,输入大客户项目SVN地址信息 https://192.168.29.9:4443/oss/inms/福富集中网管系统/9_CODE(代码)/Trunk(开发主干)/大客户管理子系统/共通管理/1_trunk 3)、右键点击vcst, 选择Check out as maven project,按照提示直接next, 片刻后即可完成项目源码检出、项目构建。 4)、项目构建过程中需要下载部门maven仓库的jar包,请确认是否有连接权限提示:请确认现场是否有连接公司svn的权限,是否需要vpn key接入。 6、项目结构:

Java web开发教程部分 (2)

对于我这样一个爱书、爱开源及爱Spring的人来说,每一次读市面上关于Spring的图书,都会让我对Spring有新的认识及体验,因为每一个作者都会用他所认识的方式来告诉我们什么是Spring、怎么用Spring。由所选择的点不同,角度的不540C,因此读多了就知道Spring真正是什么。 2007年,我跟ErikChang、船长、stef等曾经打算合作写一本能“深入Spring 2”的书籍,然而由于工作的原因,却没能坚持到最后,遗憾的同时,也让我深深体会到了写作的艰辛。2008年春节刚过,ErikChang突然告诉我,他已写完了一本关于Spring 2的书籍。给我发了《精通Spring 2.x Java Web开发》的几章,我一口气读完,感到非常欣慰与惊叹。欣慰的是我读到了一本真正“Spring 2”的书,惊叹的是ErikChang在几个月的时间里奇迹般地写出这么多的东西。 不管您是Spring的新手还是老手,我相信你从这本书中一定能读到以前所不了解的Spring,在应用好Spring的同时,了解他的设计原理,了解他里面的设计精华及编码艺术,这将会为您增加不少的财富。 只是能简单地应用Spring,这没意义;反复不断地深入学习Spring的源码,并把收获及心得拿出来与大家分享,这有意义。因此,ErikChang做了一件非常有意义的事。 用心能做好一件事,执着能让我们取得成功。祝愿每一位读者朋友工作顺利,事业成功! EasyJF 创始人 技术总监 蔡世友,

第1章 开始Spring之旅 自从Spring问世以来就引起了J2EE业界的关注,J2EE开发原本就是一个很复杂的领域,很多初级程序员都不敢涉足,Spring改变了这个局面,Spring出现以后迅速使J2EE开发越来越简单,某种程度上促进了软件生产力的发展,Spring已经成为众多程序员都日益青睐的开发框架,本章将带领大家开始学习Spring,主要内容如下。 ●Spring源码的获取 ●源码内容说明 ●第一个Spring实例 1.1 获取并查看Spring 在使用Spring之前首先要获取该框架的jar包,同时Spring是一个开源项目,有兴趣的读者可以查看Spring源码,了解Spring的设计思想及源码的编写,本节带领读者一步步来获取并查看Spring源码,使读者学会独立获取Spring并在Eclipse IDE中查看Spring源码,对Spring有个概念的认识。 1.1.1 获取Spring 首先到官方网站下载Spring, Spring的官方网址是https://www.360docs.net/doc/c4521209.html,/,单击download栏目,进入下载页面,如图1-1所示。

Maven常用命令

一,Maven常用命令: 1. 创建Maven的普通Java项目: 1、mvn archetype:create -DgroupId=packageName -DartifactId=projectName 2、mvn archetype:generate 2. 创建Maven的Web项目: mvn archetype:create -DgroupId=packageName -DartifactId=webappName -DarchetypeArtifactId=maven-archetype-webapp 3. 反向生成 maven 项目的骨架: mvn archetype:generate 4. 编译源代码: mvn compile 5. 编译测试代码: mvn test-compile 6. 运行测试: mvn test 7. 产生site: mvn site 8. 打包: mvn package 9. 在本地Repository中安装jar: mvn install 10. 清除产生的项目: mvn clean 11. 生成eclipse项目: mvn eclipse:eclipse 12. 生成idea项目:

mvn idea:idea 13. 组合使用goal命令,如只打包不测试: mvn -Dtest package 14. 编译测试的内容: mvn test-compile 15. 只打jar包: mvn jar:jar 16. 只测试而不编译,也不测试编译( -skipping 的灵活运用,当然也可以用于其他组合命令): mvn test -skipping compile -skipping test-compile 17. 清除eclipse的一些系统设置: mvn eclipse:clean 18.查看当前项目已被解析的依赖: mvn dependency:list 19.上传到私服: mvn deploy 20. 强制检查更新,由于快照版本的更新策略 mvn clean install-U 21. 源码打包: mvn source:jar 或 mvn source:jar-no-fork mvn compile与mvn install、mvn deploy的区别 1.mvn compile,编译类文件 2.mvn install,包含mvn compile,mvn package,然后上传到本地仓 库 3.mvn deploy,包含mvn install,然后,上传到私服

欧盟云计算项目(RESERVOIR)介绍word版本

欧盟云计算项目(RESERVOIR)介绍 作者:vcloud(中国云计算论坛)

邮箱:tangyong@https://www.360docs.net/doc/c4521209.html,

本文主要介绍欧盟的一个云计算项目RESERVOIR FP7,既然是研究,那么必然要给出研究的背景,研究的原因以及项目的总体介绍,同时,也将给出该项目所涉及的关键技术,以便更好地进行知识准备和技术积累。以下的内容将分为三个部分: ●研究背景 ●为什么要选择RESERVOIR ●RESERVOIR模型及核心的组件 ●涉及的基本概念 ●涉及的关键技术 ●项目的代码签出和涉及的开发语言 1 研究背景 当前,出现的云计算的范型,如Amazon弹性计算云(EC2),为驻留和部署基于WEB的服务而呈现了一个很有前景的概念性的基础,同时理论上将服务提供商从提供支持这些服务所需的计算资源的职责中释放出来。 云计算提供了很多优点,它允许带有市场领域的专业知识的个人或公司花费很少

的软件开发成本去构建和运行他们的“软件作为服务(SaaS)”,并且不需要管理任何硬件操作。这就帮助降低了软件复杂度和成本,加速到市场的时间并且方便了消费者。 有了云计算,公司能够按照需要(on-demand)从一个虚拟的没有限制的资源池中租用基础设施的资源。这种“付费后使用(pay as you go)”的定价模型按照每单位时间实际使用的资源来收取费用。这样,一个业务可能将优化它的IT投资并提高可用性和可伸缩性。 尽管云计算为服务计算的未来做了很大的承诺,但是,在当前的基础设施中存在许多固有的缺陷: 单一的云提供商的有限的伸缩能力 当前,尽管绝大多数云提供商声称有无限的伸缩能力,但实际上,作出以下的假设是合乎情理的: 随着云计算使用率的增加,即便最大的云提供商也会开始面临伸缩性的问题。 从长远来看,随着云提供商中的在线服务数量日益庞大,而且每个服务总是被巨大的全球客户群访问,那么,伸缩性的问题也许将急剧恶化。

Maven使用中的常见问题整理

Maven使用常见问题整理 1、更新eclipse的classpath加入新依赖 1、在dependencyManagement里面加入包括版本在内的依赖信息,如: joda-time joda-time 1.6.2 2、在同级的dependencies节点里面加入该依赖,如: joda-time joda-time 3、使用mvn eclipse:clean删除当前的工程配置文件,并用mvn eclipse:eclipse重新生成。 4、导入或刷新该eclipse工程。 2、工程配置未使用pom.xml更新 问题:Project configuration is not up-to-date with pom.xml 导入maven工程后,出现如下错误: Description Resource Path Location Type Project configuration is not up-to-date with pom.xml. Run project configuration update rdc line 1 Maven Configuration Problem 解决办法就是: 右键项目,【Maven】--》【Update Project Configuration...】即可。。。

maven创建多模块web项目

实现步骤 创建项目目录 进入“工作空间”目录,创建名为tradework的文件夹,切换至控制台,进入该文件夹。配置模块 生成各个模块 该步骤会依次生成项目的各个模块,但是生成的模块并没有创建依赖,只是最简单的并且符合maven要求的项目结构的模块,关于什么是maven的标准项目结构,可以参考maven 官方文档,或者《maven权威指南》。 #core 模块创建 mvn archetype:create -DgroupId=com.taobao.trade -DartifactId=trade-core #client 模块创建 mvn archetype:create -DgroupId=com.taobao.trade -DartifactId=trade-client #server 模块创建 mvn archetype:create -DgroupId=com.taobao.trade -DartifactId=trade-server -DpackageName=com. taobao.trade -DarchetypeArtifactId=maven-archetype-webapp 配置项目模块

关系。 生成好各个模块之后在tradework根目录下会生成三个目录,每个目录下都会有一个

配置依赖 进入tradework根目录,在pom.xml文件中加入dependencies节点,加入如下内容:

内容如下:

生成Eclipse 项目文件及包引用定义,注意,需确保定义Classpath Variables: M2_REPO,指向本地maven类库目录。 打开Eclipse ,导入工程即可。

Quartz2.2基础教程

Quartz2.2基础教程 下载和安装如果是采用maven管理依赖,则依赖配置如下: [html] view plain copy print?<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.3</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>2.2.3</version> </dependency> 如果不是的话,所需依赖包可以到官网下载 https://www.360docs.net/doc/c4521209.html,/downloads/关键接口Scheduler一个scheduler的生命周期是有限的,从通过SchedulerFactory创建开始直到调用它的shutdown()方法。scheduler接口一旦创建,就能添加、移除、和列出job和trigger,并执行另一些与调度相关的操作(例如暂停trigger),然而,在scheduler被start()方法启动前,它不会作用于任何trigger(执行job)。Job一个job就是实现了Job接口的类。如下所示,这个接口只有一个简单的方法:[java] view

Eclipse使用Maven创建Web时错误:Could not resolve archetype

?问题描述:在使用eclipse的maven插件创建web项目的时候有时候会遇到错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp:REL EASE from any of the configured repositories. ?错误描述的是:不能解析maven-archetype-webapp这个原型,现有eclipse中的原型不能使用,需要重新配置原型并下载: ?解决办法:打开eclipse个性化配置:preference—>Maven —>Archetype—>Add Remote Catalog,意思就是从远程添加Maven的原型:

不要着急,你需要点击一下verify...核对一下catalog,你就会看到eclise已经开始下载archetype了,从eclipse的右下角你能看到有进度条在执行任务

?这时候你再选择catalog中你刚才添加的webapp的archetype ,你发现他的版本号不是原来的RELEASE了,变为了1.0 ?如果以上方法还是不能解决问题,可能就是setting.xml 文件的配置问题了,当前eclipse设置的usersettings的位置用的是在公司用的setting.xml,所以家里的网络是不能连到公司的maven仓库的,所以不能用此setting文件建立maven项目?如果需要建立maven项目的话,需要使用maven的默认setting.xml配置,在MAVEN_HOME下的conf文件夹中,将eclipse中的maven的usersetting设置为此处的setting文件就能使用maven官方的中央库,也就能建立maven项目了,我不能创建maven项目的原因是这个,已经解决

Maven建立多模块项目-图文并茂--入门级别

一、eclipse 3.6.1下载地址[eclipse-jee-helios-SR1-win32.zip] https://www.360docs.net/doc/c4521209.html,/downloads/packages/eclipse-ide-java-ee-developers/heliossr1 二、插件地址 1、gef插件地址: https://www.360docs.net/doc/c4521209.html,/tools/gef/updates/interim/ 2、subclipse插件地址: https://www.360docs.net/doc/c4521209.html,/update_1.6.x 3、maven2插件地址: m2eclipse-core Update Site: https://www.360docs.net/doc/c4521209.html,/sites/m2e m2eclipse-extras Update Site: https://www.360docs.net/doc/c4521209.html,/sites/m2e-extras 注意:必须两个插件都安装,不安装extras插件时,点击“run as server”来运行项目时会报错:“the selected did not contain any resources that can run on server maven project” 三、安装时出现问题: 直接在线安装maven2会出现依赖插件找不到的问题,无法安装。必须先安装gef插件后才能安装m2eclipse-core插件,然而安装m2eclipse-extras插件又依赖subclipse插件。所以,三个插件的正确的安装顺序是:gef插件-> subclipse插件->m2eclipse插件。 m2eclipse-core插件——依赖——>gef插件 m2eclipse-extras插件——依赖——>subclipse插件 安装完成后,启动eclipse,你将还会看到如下提示: 安装m2eclipse插件后,重启Eclipse老是提示: Eclipse is running in a JRE, but a JDK is required Some Maven plugins may not work when importing projects or updating source folders. -vm配置项必须在–vmargs配置项前,是因为执行到-vmargs配置项已经选择了一个默认的JVM了。 所以在–vmargs前面加上这一句: -vm D:/Java/jdk1.6.0_10/bin/javaw.exe 安装结束. 在建立Maven多项目的时候,前提是在Eclipse中安装了,Maven插件, 才能建立Maven项目。 单击右键->选择Project->选择选择Maven Project. 后,单击Next ,下一步。

相关文档
最新文档