Maven在企业Java软件产品中的应用

Maven在企业Java软件产品中的应用
Maven在企业Java软件产品中的应用

Computer Knowledge and Technology 电脑知识

与技术第7卷第7期(2011年3月)Maven 在企业Java 软件产品中的应用

李俊杰

(北京邮电大学,北京100876)

摘要:Maven 是目前Java 项目的主要项目管理工具,它具有管理方便、容易扩展的特点。该文简单介绍了Maven 的原理、功能和生命周期等概念,重点结合Maven 在网络管理软件产品中的实例应用,分析和总结了Maven 在企业级软件产品中的具体使用。关键词:Maven ;插件;生命周期;网络管理

中图分类号:TP393文献标识码:A 文章编号:1009-3044(2011)07-1562-04

Applying Maven in Developing Enterprise Java Applications

LI Jun-jie

(Beijing University of Posts and Telecommunications,Beijing 100876,China)

Abstract:Maven is a software project management and comprehension tool.Based on the concept of a project object model (POM),Maven can manage a project's build,reporting and documentation from a central piece of information.The paper introduces the basic con -cepts and principle of Maven.And summarize the best practices for effective Maven management in Java applications of NMS.

Key words:Maven;plugins;life cycle;Network Management(NMS)

1Maven 简介

Maven 是一种Java 技术,是Ant 的进化,提供了一套软件项目管理的综合性方案.无论是编译,发布,文档还是团队协作,Maven 提供了必要的抽象,它鼓励重用,并做了除了软件构建以外的许多工作。作为项目管理工具,它包含了一个项目对象模型(Project Ob -ject Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven 的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven 可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

Maven 的主要目标是使开发人员在最短的时间里有效地理解整个开发过程,因此它实现了:

1)项目构建过程更加容易

Maven 针对项目细节进行了封装,使用户并不需要了解底层的结构,就可以轻松构建起整个项目。

2)提供统一的项目构建系统

Maven 提供统一的构建系统:采用Project Object Model (POM )定义和构建一个项目,并且以插件(Plugins )的方式共享给所有使用Maven 的项目。因此一旦你熟悉了自己之前的某一个Maven 项目的构建之后,你也就知道了所有Maven 项目的构建,节省了大量的需要对项目结构了解才能构建的时间。

3)提供有效地项目信息

通过POM 信息和项目源码,Maven 可以提供大量有用的项目信息。比如:修改代码管理产生的日志文件、代码之间的交叉引用、邮件列表、项目依赖关系、包含代码覆盖率的单元测试报告等。当然,基于POM ,Maven 还可以提供更多的产品标准信息

4)为最佳开发实践提供准则

Maven 集合了当前最佳开发实践的准则,并使之更加简便的应用在项目中。例如最常见的单元测试最佳实践要求。Maven 也提供协助项目工作流,比如版本管理和问题跟踪。

2Maven 的基本功能

Maven 的安装和配置不是本文的重点,所以假定你已经对Maven 有了一定的了解,并且已经成功的安装了Maven 。如果不是,请首先参考Maven 的官方网站(https://www.360docs.net/doc/f615387075.html,/)进行前期的准备和学习。

2.1Maven 基本结构

Maven 的基本元就是项目(Project ),任何一个包含有pom.xml 文件的目录都是一个项目。一个项目可以依赖其它的项目,一个项目也可以由多个模块(子项目)构成,Maven 在项目之间还提供了继承。

Maven 的基本结构包括仓库(Repository )和pom.xml 。其中仓库包括两种:远程仓库、本地仓库,它们都可以用声明的方式进行配置。本地仓库的缺省位置为“.m2/repository ”目录,也可以在settings.xml 中进行指定配置。Maven 将pom.xml 中定义的jar 文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的jar ,同一个版本的jar 只需下载一次,而且避免每个应用都去拷贝jar ,仓库将会帮助开发者在多个项目间共享库。同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提收稿日期:2011-01-10

作者简介:李俊杰(1981-),男,内蒙古人,硕士研究生,研究方向为网络管理与通信软件。

E-mail:xsjl@https://www.360docs.net/doc/f615387075.html, https://www.360docs.net/doc/f615387075.html, Tel:+86-551-56909635690964ISSN 1009-3044

Computer Knowledge and Technology 电脑知识与技术Vol.7,No.7,March 2011,pp.1562-1565,1588

Computer Knowledge and Technology 电脑知识与技术第7卷第7期(2011年3月)供,在执行maven 任务时,会自动下载需要的插件。

每个项目也可以自己构建制品,然后部署到远程仓库中。

2.2Maven 生命周期

Maven 的中心概念就是构建生命周期。有三种内建的构建生命周期:default ,

clean 和site 。default 周期处理你的项目分发,clean 周期处理项目的清理,而site 周

期处理你的项目节点的文档建立。每一个构建生命周期分为不同的构建阶段,这些

构建阶段表现生命周期的一个执行过程。表1列举了default 周期的主要构造阶段。

这些阶段在完成default 周期的过程中顺序执行,其中有些阶段会因为项目不需要

而省略。在Maven 插件开发中要参照这些阶段安排插件的执行顺序。3Maven 在软件产品中的应用

本节以我们要开发一个网管软件产品为例,产品名称为GNMP ,包含

两个子模块BASE 和KERNEL ,产品结构如图2。3.1产品版本管理

首先在项目的根目录对象模型(\gnmp\pom.xml )中定义项目的基本

信息和产品版本信息:

com.study.oam

gnmp

0.1.0

pom

GNMP

Study Maven

2010

也可以在其中定义更多的项目信息,如开发机构、开发人员、邮件列表等:

定义该产品包含的模块:

base

kernel

然后在这两个模块的对象模型(pom.xml )中定义各自的项目基本信息,并且设置父模型为gnmp ,则模块的版本和其他基本信息

继承自父模型中的对应内容。以base 为例(\gnmp\base\pom.xml ):com.study.oam.gnmp

base

jar

com.study.oam

gnmp

0.1.0

../pom.xml

3.2产品插件依赖管理

可以在gnmp 对象模型中定义全局的依赖管理,规定项目整体使用的第三方依赖及其版本:

org.apachelog4j

图1

Maven 原理图表1default 周期的主要构造

阶段

图2产品结构

Computer Knowledge and Technology电脑知识与技术第7卷第7期(2011年3月) 1.2.15

org

junit

3.8.2.v200706111738

在模块实现中只需要定义直接依赖的插件名称,无需指定版本,实现插件的统一管理。仍以base为例:

org.apache

log4j

org

junit

3.3产品编译

在项目对象模型中可以定义需要的属性,如我们可以定义全局Java版本为1.5,并设定为编译环境:

1.5

org.apache.maven.plugins

maven-compiler-plugin

${java-version}

${java-version}

3.4单元测试

Maven内建了对单元测试的支持,测试是Maven默认生命周期的一部分。在工程目录下的“src/test/java/”中创建单元测试类,继承JUnit定义的TestCase类,并遵从JUnit测试管理模式:一个构造函数接受一个单独的String参数并调用父类的构造函数;一系列以“test”开头的公有方法,作为单元测试被调用。

对于测试的运行,我们也可以添加测试范围依赖。测试范围依赖是只有在测试编译和测试运行时在classpath中有效的依赖。在项目打包阶段,测试范围依赖也不会包含在项目的打包输出中。

以base项目为例,加入对JUnit的测试依赖:

com.study.oam.gnmp

base

jar

……

……

org

junit

test

对于某些时候或者某些工程,你可能希望在生命周期中跳过单元测试阶段,例如仅仅想要打包生成jar文件,而不去修复单元

第7卷第7期(2011年3月)

Computer Knowledge and Technology电脑知识与技术

测试。则需要用到Surefire插件,以kernel为例:

com.study.oam.gnmp

kernel

jar

……

org.apache.maven.plugins

maven-surefire-plugin

true

3.5项目报告

Maven的Site生命周期阶段可以生成项目的报告,它包含了项目基本信息,依赖,相关开发人员信息,单元测试结果等。其中单元测试代码覆盖率Clover报告是最常用,并且需要额外设置和定制的。

首先在default和site生命周期中加入clover插件,并设定相关参数,具体如下:

true

false

true

org.apache.maven.plugins

maven-clover-plugin

2.5.1-SNAPSHOT

${clover.license.path}

1.5

test

package

instrument

org.apache.maven.plugins

maven-clover-plugin

${clover.generateHtml}(下转第1588页)

Computer Knowledge and Technology电脑知识与技术第7卷第7期(2011年3月)

键代码(语句、单词等),评分时,系统通过查找考生程序中这些关键代码的数量,给出一个比较合理的分数。

C语言程序书写格式多种多样,同一段程序可以用不同有的风格书写,程序中定义的变量名也随考生个人喜好有所不同,而且书写时会出现有无空格之类的区别,同样功能的程序编写方法千变万化,直接使用字符匹配方法显然存在很大的不合理性。经过对C程序语法等特性的研究,在自动评阅方法中采用正则表达式来表示一程序中的关键算法,例如实现1-10的整数求和程序段的通用句式可表示为:

int@VAR@;for(int@VAR@=1;@VAR@<=10;@VAR@++)@VAR@=@VAR@+@VAR@;

这种形式可以表示上述程序的核心算法,而且具有通用性。

3结束语

基于上述C语言程序设计题自动评阅方法的C语言考试系统已应用于实际教学和教学辅助网站。经过大量测试和使用,程序设计题的自动评分可全部实现。对于正确的考生程序,能100%的准确评分,对于存在错误的考生程序,评分结果接近人工评分标准,准确率在90%左右,避免了不合理极端分数的出现,完全可以在实际考试中使用。

此C语言程序设计题自动评阅方法,也可应用各种将C语言列入考试科目的各类计算机考试,如全国计算机等级考试二级、三级C语言上机,省二级C语言考试和国家程序员考试等,具有很好的应用和推广价值。

参考文献:

[1]黄思先.程序设计填空题的自动评分[J].福建电脑,2003(7):26~27

[2]段汉周,凌捷,郑衍衡.Visual Basic程序设计考核自动评阅系统中若干问题的研究[J].计算机工程,2001,27(4)167-168.

[3]吴晓辉.VFP表单计算机阅卷系统[J].福州大学学报:自然科学版,2001,29(增刊)91-94.

[4]何克抗,许骏.计算机辅助测评(CAA)研究新进展一技能性非客观题的自动测评[J].开放教育研究2005(2):78-83.

[5]王春霞.自动阅卷系统的开发[J].盐城工学院学报:自然科学版,2002(1):47-49

[6]Joy M,Luck M.The BOSS System for On-line Submission and Assessment[J].Journal of the CTI Centre for Computing,1998(10):27-29.

[7]邵晨辉,陈玉泉,徐良贤.基于题目反应理论的机助自适应考试系统[J].计算机工程,2000(11):161-163.

[8]CHEN J,Subramaniam S.Specification-based Testing for GUI-based Applications[J].Software Quality Journal,2002(10):204-224.

[9]Ajiro Y,Kima K U.An Automated Error Correction System for Concurrent Logic Programs[J].Automated Software Engineering.2002(9):

67-94.

[10]马航飞.基于B/S模式的在线考试系统ASP实现方案[J].中国西部科技,2005(11):15-16.

(上接第1565页)

${clover.generatePdf}

${clover.generateXml}

${clover.license.path}

4结束语

本文简单介绍了Maven这种项目管理工具,并通过在软件产品中的应用分析了Maven插件的具体使用方法。Maven的设计目的是简化项目开发工程中各阶段的管理,它功能强大,扩展灵活的特点使它具有大量的插件,也提供了方便研发人员针对自己的不同项目开发Maven插件的接口。

参考文献:

[1]Maven官方网站[EB/OL].https://www.360docs.net/doc/f615387075.html,.

[2]van Zyl J,Casey J,Massol V,et al.Better Builds with Maven[M].Mergere,Inc,2006.

[3]Massol V,O'Brien T M.Maven:A Developer's Notebook[M].O'Reily,2005.

使用Eclipse构建Maven的SpringMVC项目

使用Eclipse构建Maven的SpringMVC 项目 首先Eclipse需要安装Maven的插件,地址:https://www.360docs.net/doc/f615387075.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与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)

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/f615387075.html,/xml/ns/javaee" xmlns:xsi= "https://www.360docs.net/doc/f615387075.html,/2001/XMLSchema-instance" xsi:schemaLocation= "https://www.360docs.net/doc/f615387075.html,/xml/ns/javaee https://www.360docs.net/doc/f615387075.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/f615387075.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/f615387075.html,/downloads/ 2、解压运行eclipse 3、安装svn插件 点击help->Install New Software… 点击Add…

输入插件名称(可任意输入)和插件地址https://www.360docs.net/doc/f615387075.html,/update_1.6.x 点击OK 勾选列表框中插件,按照提示一直点击next即可安装完成。 4、安装maven插件 同上方法安装maven插件。 M2eclipse 地址:https://www.360docs.net/doc/f615387075.html,/sites/m2e M2eclipse-extra地址:https://www.360docs.net/doc/f615387075.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、项目结构:

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/f615387075.html,

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

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

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 ,导入工程即可。

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/f615387075.html,/downloads/packages/eclipse-ide-java-ee-developers/heliossr1 二、插件地址 1、gef插件地址: https://www.360docs.net/doc/f615387075.html,/tools/gef/updates/interim/ 2、subclipse插件地址: https://www.360docs.net/doc/f615387075.html,/update_1.6.x 3、maven2插件地址: m2eclipse-core Update Site: https://www.360docs.net/doc/f615387075.html,/sites/m2e m2eclipse-extras Update Site: https://www.360docs.net/doc/f615387075.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 ,下一步。

eclipse中建立maven web项目

一、直接建立M aven项目方法 1、建立M aven项目 接下来使用Eclipse的maven构建一个web项目,以构建SpringMVC项目为例: 1.1 选择建立M aven 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。 一般Group ID 带上公司的名字 artifactId:写自己项目的名字。 Package是默认给你建一个包,不写也可以。 1.5 刚建立好后的文件结构如下图 /* 如果这里显示的内容多,一般是Filters设置的问题。或perspective为JavaEE模式,改成Java模式就可以了*/ 2、配置M aven项目 接下来就需要更改好多配置了。 2.1 添加Source文件夹 接下来需要添加src/main/java,src/test/java ,src/t est/resources三个文件夹。右键项目根目录点击New -> Source Folder, 建出这三个文件夹。注意不是建普通的Folder,而是Source F older。 2.2 更改class路径 右键项目,Java Build Path -> Source 下面应该有4个文件夹。src/main/java,src/main/resources,src/t est/java ,src/test/resources。 -------------------你用到哪些文件夹就建哪些文件夹------------------------ 双击每个文件夹的Output folder,选择路径。 src/main/java,src/main/resources,选择t arget/classes;

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

项目构建之MANVEN 阳春20120210 1.安装manven 到官网下载manven2.2.1:https://www.360docs.net/doc/f615387075.html,/download.html 可以选择windows 安装也可以选择绿色解压(需要配置环境变量,同java配置环境变量相似:配置一个M2_MANVEN:manven的解压路径,bin上面一层目录,配置项目路径bin到Path下:%M2_MAVEN%\bin) 安装完成后,打开cmd 输入 mvn –version 可查看maven安装信息,表示的maven已经安装成功。如下图: 2.创建项目 思路是:使用maven命令创建java或者web项目,然后导入myeclipse配置项目pom.xml文件,进行maven配置。在D盘创建一个文件夹my-app作为项目路径,在命令行下输入一下命令: mvn archetype:create -DgroupId=https://www.360docs.net/doc/f615387075.html,et -DartifactId=Frameworks mvn archetype:create -DgroupId=https://www.360docs.net/doc/f615387075.html,et -DartifactId=CcetApp -DarchetypeArtifactId=maven-archetype-webapp 创建了2个项目:cqrd-core、cqrd-web,其中cqrd-web是web项目。

在pom.xml中体现,在下面将详细说明如何使用manven创建项目 mvn archetype:generate -DarchetypeArtifactId=\[项目类型] -DgroupId=\[组识别] -DartifactId=\[项目名称] -Dversion=\[版本] -Dpackage=\[包] 项目类型(archetypeArtifactId)可以是下列选项 1. maven-archetype-j2ee-simple (J2EE 项目) 2. maven-archetype-portlet (门户) 3. maven-archetype-quickstart (一般 Java project) 4. maven-archetype-site (复杂站点) 5. maven-archetype-site-simple (简单站点) 6. maven-archetype-webapp (Java Web 站点) groupId 用于项目的分组 artifactId 项目的名称,也就是包名称 version 版本 package 主要设定目录的层次 第一次安装maven,创建项目时会花一点时间,它需要从官网下载一些插件的jars。由于网络原因,可能build error,这时你可以再次重复以上步骤直到,提示build successful,如下图:

基于MAVEN的WEB项目在ECLIPSE中使用TOMCAT调试

1. 安装Maven(配置Maven环境变量+Eclipse中的Maven插件) 这步就不多说了,网上一搜一大把,要说明的只有一点,第一次配好Maven插件,一定要更新一次远程库的索引,这样添加依赖的时候就不会出现搜不到那个jar包的情况了(当然要先启用远程库的index,不然也搜不到jar包的) 2. 新建Maven项目、配置 新建了Maven项目后,属性->Project Facets->”convert to faceted form…”,在随后出现的Project Facet中勾选如下2项,注意选择后面的version: 选择好了,确定,在次打开项目->属性,可以看到多了一个Deployment Assembly 选项,打开可以看到这里配置的是文件夹和发布文件夹的对应关系 由于maven打包时默认从src/main/webapp目录下面取web.xml文件,我们还要手动在下面建立一个这样的文件。 3. 配置调试的服务器(Apathc Tomcat)

如下图所示,Eclipse中新建一个Tomcat容器: 3. 运行Maven项目 经过上面的配置,是不是就可以运行我们的maven项目了呢??当然可以。

选择了上图所示的“Run on Server”后可以运行我们的Maven项目了。 4. 剩余问题 (1)、我们浏览器输入“http://localhost:8080/ssh2/index.html”返回404?? 不要急,可以到工作空间的目 录.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps下面看到有个我们的maven项目名称的文件夹,这是我们调试时自动发布的目录,可以看到下面并没有我们添加的页面,神马情况?? 这是我们没有配置src/main/webapp的发布目录,所以调试时也没有把下面的html 等内容发布 解决: 项目—> 属性-> Deployment Assembly -> Add -> folder -> 选择 src/main/webapp 这一步就是配置webapp目录要发布到项目的根目录下,我们再看 到.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\ssh2目录下面有自动发布的html文件 刷新浏览器页面,OK页面出来了!!! (2)、是不是这样就OK了??答案是否定的。 我们在pom.xml中添加了那些依赖的jar后,一旦在代码中应用。当我们本地调试时,会报ClassNotFound错误,这是为什么?? 因为Tomcat不懂这些配置,你必须把Maven Dependencies中的jar与发布目录配置好: 项目—> 属性-> Deployment Assembly -> Add -> Java Build Path Entries -> 选择Maven Dependencies -> Finish -> OK 这一步就是配置Maven依赖包发布目录,这样调试时会自动把那些jar发布到指定目录下,tomcat也能找到那些jar了。 1、在安装了m2eclipse插件并配置好maven-tomcat-plugin后,单击Eclipse 菜单“Run”中的“Run Configurations”。 2、在弹出的对话框中的左侧树中找“到Maven Build”,在其上点击右键并单击“New”。

使用maven打包替换掉页面的占位符

使用maven打包替换掉页面的占位符 1 项目遇到问题 项目在更新版本后,对用户来说会存在前端资源被浏览器缓存的问题,这时候要清理浏览器缓存,对用户来说就比较麻烦了。 2 解决方案 通过对资源文件添加版本号作为请求参数,在更新版本后统一更新版本号,用户访问的时候浏览器就会当成新的请求去拉取资源。 3 实现思路 Maven 打包的时候可以设置filtering 来过滤设置好的占位符(1)。 4 实现方案 因为maven 中的占位符默认是${} , 而我们已存在的代码中大量使用了$ 来取值,这样就会导致打包的时候会替换掉maven本身的值,比如${id},${version},${name}... , 这时候就想用其他的占位符来替换$ .通过查找API(2)发现可以使用, 这2个元素组合使用可以把默认的占位符给换掉, 代码如下: org.apache.maven.plugins maven-war-plugin 3.0.0 src/main/webapp true **/*.jsp #{*} false UTF-8 useDefaultDelimiters 的api 如下:

Java的项目构建工具Maven的使用教程

Java的项目构建工具Maven的使用教程 Java的项目构建工具Maven的使用教程 一、Maven是什么 二、安装Maven 安装maven非常简单,访问Maven官方页下载即可: https://www.360docs.net/doc/f615387075.html,/download.cgi 下载完后配置M2_HOME环境变量,然后终端运行mvn--version,看到正确的输出提示,Maven就安装完成了。 三、Maven基本概念 Maven的核心思想是POM,即ProjectObjectModel(项目对象模型)。POM文件是以XML文件的形式描述一个Maven项目所用到的资源(源码、依赖、测试等)。下图描述了POM文件的结构,以及Maven是如何调用POM文件的。 当执行一条Maven命令时,会传入一个pom文件,Maven会在该pom里面的描述的资源上执行 POM文件: 4.0.0................................................... ................................. modelVersion是POM模型版本,4.0.0支持Maven2和3 MavenCoordinates(Maven坐标) (1)groupId:它是一个组织或者项目的唯一ID,大多数情况下会使用项目的java包的根名作为groupID,例如com.pastqing

(2)artifactId:它是正在构建的项目名称,例如一个支付系统artifactId是web-pay。artifactId是Maven仓库中groupId目录下的子目录名 (3)version:顾名思义项目发行的版本号 以上三项都是构建结果名称的一部分,在项目构建后会生成一个jar包,位于Maven仓库的路径就是 MAVEN_REPO/com/pastqing/web-pay/1.0/web-pay-1.0.jar 四、一个用Maven构建的HelloWorldjava项目 利用Maven插件archetype构建一个项目: 在终端中打开工作目录 运行命令: mvnarchetype:generate ,第一次运行时比较慢,原因是第一次需要从Maven中央仓库中下载相关项目原型。下载完毕后,会选择项目模型,以及输入groupId,artifactId,version等,构建完毕后会有成功提示。 打包项目:切换到项目根目录,运行mvnpackage。打包成功之后,项目会生成一个target文件夹,里面有生成好的jar文件和class文件。 运行jar文件: java-cptarget/helloWorld-1.0- SNAPSHOT.jarcom.pastqing.App 至此一个最简单Maven构建的java项目就完成了。 五、一个用Maven构建的java-web项目 生成一个web项目与生成java项目基本类似,只是用的模型不同而已。这里不再阐述。下面我们具体说说如何使用Tomcat或者jetty插件运行web项目。这里我们以tomcat举例。

相关文档
最新文档