maven笔记
maven2.0学习笔记[摘]-SQ-CSDN博客
maven2.0学习笔记[摘]-SQ-CSDN博客Maven简介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%环境变量中。
maven知识点
maven知识点
Maven是一个基于项目对象模型(POM)的构建工具,它可以帮助开发者自动化构建、测试和部署Java应用程序。
在学习Maven时,需要掌握以下知识点:
1. POM文件:POM是Maven项目中的核心文件,用于描述项目的依赖、构建过程和其他配置信息。
2. 依赖管理:Maven可以管理项目的依赖关系,包括下载依赖、解决依赖冲突和管理依赖版本等。
3. 生命周期和插件:Maven的构建过程是由一系列阶段组成的,每个阶段都有其对应的插件执行。
学习Maven还需要了解如何编写自定义插件。
4. 仓库管理:Maven的仓库管理包括本地仓库和中央仓库。
本地仓库是用于缓存依赖的本地存储,而中央仓库则是Maven社区维护的公共仓库。
5. 多模块项目:Maven支持多模块项目,可以通过父子POM的方式管理多个子项目,实现模块化开发和部署。
学习以上知识点可以帮助开发者更好地使用Maven进行Java项目的构建和管理。
- 1 -。
Maven3实战笔记10使用Maven进行测试
Maven3实战笔记10使用Maven进行测试刘岩Email:1.测试简介这里所说的测试主要是指单元测试,一般说Java的单元测试都知道有个Junit。
确实目前很多公司,无论什么行业,基本都是使用junit进行单元测试,一般银行、电信、股票项目每个功能类都必须有相应的单元测试类,而且测试用例也是极其苛刻的。
而且每一行代码都需要有log追踪。
生成的测试报告也要成为相应的成果物交与甲方。
稍微差一点的,单元测试也就是一个形式,因为很多情况(由以国内政务项目为主)都是业务逻辑集成UI功能都做完了,之后再回去补单元测试,其实是为了应付甲方合同中的测试报告。
话说多了,偏离了主题。
Maven构建项目的时候可以执行我们的单元测试,底层是调用了Maven的插件maven-surefire-plugin执行单元测试用例。
2.新模块的需求与开发再展示Maven的测试功能之前,我们先来开发一个新的模块,随机验证码的功能模块。
随机验证码我们在网上都用过,在此不再详细说了,直接看代码即可。
此处用到了一个google开源的组件。
这个在笔者的另一篇blog/1076066中有介绍,在此不再赘述。
先来看生成随机数业务代码再来看看生成图片的类AccountImageServiceImpl,接口不再给出了这个类就是调用辅助类生成图片的。
下面我们编写单元测试。
3.新模块的测试行了3个用例,和预期效果不符的是0个,失败的用例是0个,忽略的用例数是0个。
大家可能要问,为何Maven能够自己寻找我们编写的测试类呢?其实还是那句约定大于配置。
Maven自动去寻找src/test/java下面的类,当此文件夹下面的类符合以下规范,那么Maven默认认为他们是单元测试用例类。
Test*.java:任何目录下以Test为开始的类*Test.java: 任何目录下以Test为结尾的类*TestCase.java: 任何目录下以TestCase为结尾的类。
Maven3实战笔记之Maven的生命周期和插件
Maven3实战笔之Maven的生命周期和插件1.Maven的生命周期Maven的生命周期其实是指它对所有的构建过程进行了反复的推敲、反思,之后总结了一套高度抽象过程。
这个过程是高度完善的、容易扩展的。
基本上包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署、、站点生成等步骤,几乎所有的项目生命周期也就这样。
Maven项目周期是一个抽象的概念,这个概念性的东西意味着它并不做任何实质性的事情,也就是说:它就像接口,只定义规范,具体细节它不管。
具体的实现细节则交给了Maven的各个丰富的插件。
Maven的插件机制有可能是跟Eclipse学的,基于一个内核core,定义一堆流程性的东西,让插件去实现这些规范。
其他组织也可以根据这套规范插入自己的东西,形成有特色化的、自定制的Maven。
Maven有三套相互独立的生命周期,分别是:clean、default、site。
clean主要是清理项目、default是Maven最核心的的构建项目、site是生成项目站点。
每一个大的生命周期又分为很多个阶段。
后面的阶段依赖于前面的阶段,这点有点像Ant的构建依赖。
生命周期本身相互独立,用户可以仅仅调用生命周期的某一个阶段,也就是说用户调用了default周期的任何阶段,并不会触发clean周期以及site周期的任何事情。
2.Maven生命周期阶段详解3大生命周期蕴含着小小的阶段,我们按顺序看一下clean周期:pre-clean:准备清理clean:真正的清理工作post-clean:执行清理后的一些后续工作default周期:validate:验证initialize:初始化配置generate-sources:生成源代码编译目录process-sources:处理项目主资源文件,复制资源文件到outputclasspathgenerate-resources:生成资源目录process-resources:处理资源文件complie:编译源代码process-classes:处理编译后文件generate-test-sources:生成测试目录process-test-sources:处理项目测试资源文件,复制测试资源文件到outputclasspath generate-test-resources:生成测试资源文件process-test-resources:处理测试资源文件test-compile:编译测试代码process-test-classes:处理测试代码test:单元测试运行测试代码prepare-package:打包前的准备package:将编译好的代码打包成为jar或者war或者ear等等pre-integration-test:准备整体测试integration-test:整体测试post-integration-test:为整体测试收尾verify:验证install:安装到本地Maven库deploy:将最终包部署到远程Maven仓库site周期:pre-site:准备生成站点site:生成站点及文档post-site:站点收尾site-deploy:将生成的站点发布到服务器上就是执行了整个default生命周期这个就是执行了clean周期的前两个阶段、default周期的所有阶段、site周期的所有阶段。
Maven学习总结
Maven学习总结(一下红色字体表示重要信息或者自己写的备注)1.maven的安装。
1.需要安装JDK,使用java -version查看,或者使用javac确认。
2./download.html3.网站下载最新版本的maven。
4.window系统,需要配置环境变量:M2_HOME=c:/Program Files/maven-2.0.9PATH=%PATH%;%M2_HOME%/bin5.使用mvn -v命令查看mvn是否已经正确安装2.maven help命令。
1.help:active-profiles :列出当前构建中活动的Profile(项目的,用户的,全局的)。
2.help:effective-pom :显示当前构建的实际POM,包含活动的Profile。
3.help:effective-settings :打印出项目的实际settings, 包括从全局的settings 和用户级别settings 继承的配置4.help:describe :描述插件的属性。
它不需要在项目目录下运行。
但是你必须提供你想要描述插件的groupId 和artifactId。
3.创建一个maven项目。
(在dos环境下用命令新建了一个项目)我们用最基本的archetype 来创建一个入门项目的骨架。
这个插件的前缀是―archetype‖,目标为‖create‖。
命令行中输入:C:/Documents and Settings/Administrator>mvn archetype:create-DgroupId=cn.vicky.maven.ch01 -DartifactId=simple -DpackageName=cn.vicky.maven 将在C:/Documents and Settings/Administrator文件夹下创建,一个simple文件夹。
且会,自动创建一个App.java的文件!simple/simple/pom.xml/src//src/main//main/java/src/test//test/javaMaven Archtype 插件创建了一个与artifactId 匹配的目录——simple。
maven详细笔记
Maven 项目管理工具1 Maven的简介Maven 是一个项目管理和整合工具(apache 的一个开源项目)。
Maven 为开发者提供了一套完整的构建生命周期框架。
在有多个开发团队环境的情况下,Maven 能够在很短的时间内使得每项工作都可以按照标准进行。
在java web 应用中,最能直接看到的优点是对jar包进行统一管理,节省空间。
其主要功能包括:1.构建2.文档生成3.报告4.依赖5.SCMs6.发布7.分发8.邮件列表1.1 Maven的下载1.2 Maven的环境配置1.2.1 java的环境变量必须正常1.2.2 解压maven压缩包解压压缩包到D盘。
配置 Maven 的系统变量。
变量名:MAVEN_HOME变量值:Maven 解压时的路径。
以上图为例,我的变量值为,D:\apache-maven-3.6.0-bin\apache-maven-3.6.0检验是否配置成功。
在 DOS 中输入:mvn -version1.3 Maven 的pom文件POM 代表工程对象模型。
它是使用 Maven 工作时的基本组件,是一个 xml 文件。
一般包含依赖、插件、属性,具体配置如下:●Project dependencies●Plugins●Goals●Build profiles●Project version●Developers●Mailing list1.3.1 元素概述一般地,一个工程只有一个 pom.xml 。
●所有的pom 文件需要project 元素和三个必须的字段:groupId,artifactId,version。
●在仓库中的工程标识为 groupId:artifactId:version。
●Pom.xml的根元素是project,它有三个主要的子节点。
第一个节点是groupId,这是工程组的标识,它在一个组织或项目中通常是唯一的。
例如,一个银行组织pany.bank拥有所有的和银行相关的项目。
Maven学习记录文档
M AVEN学习记录文档一、下载安装Maven1.1Jdk环境准备由于Maven依赖Java运行环境,因此使用Maven之前需要配置Java的运行环境。
下载并安装JDK,配置JDK的环境变量JAVA_HOME,否则maven将无法使用1.2下载maven首先下载maven的bin,在apache官方网站可以下载。
/download.cgi1.3设置maven环境变量1.3.1在PATH里加入maven的bin的路径下载下来之后,解压,找个路径放进去,把bin的位置设在环境变量里,新建环境变量M2_HOME1.3.2验证配置结果配置完毕后,在Windows命令提示符下,输入mvn -v测试一下,配置成功显示如图:至此,maven配置完成。
二、在eclipse中配置maven插件有两种方式:在线安装和离线安装包2.1在线安装第一步、打开eclipse 点击help菜单项-> install new Software第二步、添加站点/sites/m2e第三步、选择软件后继续等待计算依赖完成,然后继续按下图操作,开始安装过程开始安装后显示如下界面,请耐心等待完成2.2离线安装包(多数采用)∙离线安装Maven插件到Eclipse,最重要的是需要有m2eclipse插件包。
在网上可以搜索到网友们分享的包。
百度搜索 '下载m2eclipse' 关键字。
下载m2eclipse插件包到本地之后解压,会出现features和plugins文件夹。
∙把这个features和plugins文件夹下面的jar包放到Eclipse安装目录下对应的文件夹里,然后重启Eclipse,在Eclipse的window ->preferences 选项里可以看到Maven就成功了。
安装完成后,重启eclipse。
为了使得Eclipse中安装的Maven 插件,同windows中安装的那个相同,需要让eclipse中的maven 重新定位一下,点击Window -> Preference ->Maven ->Installation -> Add进行设置将这条选项取消掉:三、新建maven工程3.1新建工程下面开始新建项目。
idea maven 执行日志
idea maven 执行日志
当使用Maven构建项目时,执行日志可以提供关于构建过程中
发生的各种操作和事件的详细信息。
Maven执行日志通常包括以下
内容:
1. 依赖解析,Maven会记录依赖项的解析过程,包括从远程仓
库下载依赖项的详细信息,如依赖项的坐标、版本号等。
2. 生命周期阶段,Maven执行日志会显示构建过程中所处的生
命周期阶段,例如编译、测试、打包、部署等,以及每个阶段所执
行的目标。
3. 插件执行,Maven插件在构建过程中扮演重要角色,执行日
志会记录每个插件的执行情况,包括插件的配置信息、执行结果等。
4. 错误和警告,执行日志会详细记录构建过程中出现的错误和
警告信息,帮助开发人员快速定位和解决问题。
5. 资源处理,Maven执行日志还会包括资源处理的相关信息,
如资源文件的复制、过滤等操作。
为了查看Maven执行日志,可以通过命令行执行Maven构建命令并添加“-X”参数,该参数会输出详细的执行日志信息。
另外,也可以在集成开发环境(IDE)中查看Maven执行日志,大多数IDE 都提供了查看构建输出的功能,可以方便地查看Maven执行日志。
总之,Maven执行日志对于理解项目构建过程、定位和解决问题非常重要,开发人员应该充分利用执行日志来提高项目构建的效率和质量。
Maven3实战笔记01环境配置与使用入门
Maven3实战笔记01环境配置与使用入门刘岩Email:1.前言Maven是apache的一个顶级项目,它的出现越来越影响着现在的众多的开源项目,不仅如此,很多公司的很多新项目都采用Maven提倡的方式进行管理。
Maven正逐渐侵入我们原先的管理项目的习惯,对于团队的管理,项目的构建,都是一种质的飞跃。
当然是我个人的一些项目经验而说的这话。
如果原先的团队老大本身的管理非常科学,也有一套其他软件辅助项目的构建、打包、发布等等一系列机制保证。
那么Maven可能对其并没有实质性的影响或者是质的飞跃。
当然在此也并不是说咱们中国人做出来的项目就管理不善……只是说利用Maven帮助我们构建项目更科学、更有可维护性、更加模块化、模块功能更加职能单一、做出来的项目更加具有可复用性等等好处。
当然笔者也是个刚学习Maven的人,我们一起来学习Maven到底为我们带来了什么好处。
笔者邮箱已经给出,欢迎与笔者进行学术上的交流。
2.Maven的思想本来想看完了实战整本,再写总结的,后来觉得还是先写出来吧。
哪怕有什么不对的地方再纠正都不晚,就怕到时候看完了一点心得都没有,全忘了就太……所以先将学习的点点滴滴感受写下来,之后结合实例咱们可以反复的推敲。
目前笔者看到的Maven的主要功能是:项目构建;项目构建;项目依赖管理;软件项目持续集成;版本管理;项目的站点描述信息管理;由此可以看出Maven最主要的体现在了哪2个词?——对了,“项目”和“管理”!加在一起就是项目管理。
项目管理是一个很抽象的概念。
项目管理既可以指技术上的管理手段,也可以指“以人为本”的非技术因素。
诚然,无论是技术还是非技术,项目的成败最大的责任人其实就是项目经理。
这里我们抛开人为因素不提,仅就技术上来说,Maven 提供了一种思想让团队更科学的管理、构建项目。
用配置文件的方式对项目的描述、名称、版本号、项目依赖等等信息进行描述。
使之项目描述结构清晰,任何人接手的成本比较低。
maven3实战读书笔记
Maven简介是什么?Is a software project management and comprehension tool.项目管理工具是基于POM概念(工程对象模型)[设计重复、编码重复、文档重复、构建重复,maven最大化消除了构建的重复][与XP:简单、交流与反馈;测试驱动开发、十分钟构建、持续集成、富有信息的工作区]功能:1)规范构建系统,项目构建,自动化(标准化)构建→构建工具(清理、编译、测试、生成报告、打包、部署),而且是跨平台的。
抽象构建过程,提供构建任务实现。
2)依赖管理:[在这开源的年代里,几乎任何Java应用都会借用一些第三方的开源类库,这些类库都可以通过依赖的方式引入到项目中来。
随着依赖的增多,版本不一致、版本冲突、依赖臃肿等问题都会接踵而来。
Maven提供了一个优秀的解决方案:]通过一组坐标maven 能够找到任何一个Java类库。
3)项目信息管理:管理原本分散在各个角落的项目信息:项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址。
4)自动生成项目站点,获得项目文档、测试报告、静态分析报告、源码版本日志报告。
5)中央仓库:提供一个免费的中央仓库,在其中集合可以找到任何的流行开源类库。
通过一些Maven的衍生工具(如Nexus),可以对其进行快速地搜索。
只要定位了坐标,Maven 就能够帮我们自动下载。
/maven2/相关内容:1)maven的安装、配置、基本使用2)坐标和依赖、中央仓库、maven仓库、生命周期、插件、聚合与集成3)nexus建立私服、使用maven进行测试、使用Hudson进行持续集成、4)使用maven构建web应用、maven的版本管理、maven的灵活构建、生成项目站点和maven的m2eclipse插件5)maven和archetype插件Java领域构建管理的解决方案发展:IDE→Make|Ant+Ivy→Maven================================================ 参考官方document:“/guides/index.html”几乎都能找到。
mavenpom配置学习笔记(一)之maven-assembly-plugin进行打包
mavenpom配置学习笔记(⼀)之maven-assembly-plugin进⾏打包maven-assembly-plugin使⽤描述(拷⾃ )The Assembly Plugin for Maven is primarily intended to allow users to aggregate the project output along with its dependencies, modules, site documentation, and other files into a single distributable archive.assembly:single简单的说,maven-assembly-plugin 就是⽤来帮助打包⽤的,⽐如说打出⼀个什么类型的包,包⾥包括哪些内容等等。
⽬前⾄少⽀持以下打包类型:ziptartar.gztar.bz2jardirwar默认情况下,打jar包时,只有在类路径上的⽂件资源会被打包到jar中,并且⽂件名是${artifactId}-${version}.jar,下⾯看看怎么⽤maven-assembly-plugin插件来定制化打包。
⾸先需要添加插件声明:<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>2.4</version><executions><execution><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin>使⽤内置的Assembly Descriptor要使⽤maven-assembly-plugin,需要指定⾄少⼀个要使⽤的assembly descriptor ⽂件,对于当前使⽤的版本(2.4)对应的assembly descriptor的schema定义为:,其中assembly descriptor中⼜可以包括 component 的定义 (component 可以很⽅便的⽤于多个assembly descriptor之间共享),component 的schema 定义在:。
《Maven实战》学习笔记(5)
《Maven实战》学习笔记(5)普通来说,项目的配置文件都在resources下面,默认maven会从下面路径查找资源文件,这是超级pom中的配置 resources resource directoryF:\maven_workspace\workspace\piaoyi\service\src\main\resource s /directory /resource /resources testResourcestestResource directoryF:\maven_workspace\workspace\piaoyi\service\src\test\resource s /directory /testResource /testResources 可以将不同环境的配置,通过属性定义的方式配置在pros中(pom),然后在项目配置文件中用法这些mavne属性,在构建不同的环境时,通过激活不同的frofile来打算用法哪个环境的配置,比如(该profiles不能被子项目继承,只对当前pom项目有效,所以推举配置在tings中): profiles profile dev /id properties db.driver com.mysql.jdbc.Driver /db.driver db.urljdbc:mysql://localhost:3306/test /db.url /properties/profile profile id test /id properties db.driver com.mysql.jdbc.Driver /db.driver db.urljdbc:mysql://192.168.0.10:3306/test /db.url /properties /profile /profiles 同时,需要在pom中的修改资源配置(定义在聚会项目中即可,可以被继承),如下,增强在pom中: build resources resource directory${project.basir}\src\main\resources /directory filtering ue /filtering /resource /resources testResources testResource directory ${project.bair}\src\test\resources /directory filtering true /filtering /testResource/testResources /build 然后在执行构建时,执行如下: n clean install -Pdev 激活该profile 也可以在settings.xml中举行配置,第1页共2页。
Maven学习总结(一)——Maven入门
Maven学习总结(⼀)——Maven⼊门⼀、Maven的基本概念 Maven(翻译为"专家","内⾏")是跨平台的项⽬管理⼯具。
主要服务于基于Java平台的项⽬构建,依赖管理和项⽬信息管理。
1.1、项⽬构建 项⽬构建过程包括【清理项⽬】→【编译项⽬】→【测试项⽬】→【⽣成测试报告】→【打包项⽬】→【部署项⽬】这⼏个步骤,这六个步骤就是⼀个项⽬的完整构建过程。
理想的项⽬构建是⾼度⾃动化,跨平台,可重⽤的组件,标准化的,使⽤maven就可以帮我们完成上述所说的项⽬构建过程。
1.2、依赖管理 依赖指的是jar包之间的相互依赖,⽐如我们搭建⼀个Struts2的开发框架时,光光有struts2-core-2.3.16.3.jar这个jar包是不⾏的,struts2-core-2.3.16.3.jar还依赖其它的jar包,依赖管理指的就是使⽤Maven来管理项⽬中使⽤到的jar包,Maven管理的⽅式就是“⾃动下载项⽬所需要的jar包,统⼀管理jar包之间的依赖关系”。
1.3、使⽤Maven的好处 Maven中使⽤约定,约定java源代码代码必须放在哪个⽬录下,编译好的java代码⼜必须放到哪个⽬录下,这些⽬录都有明确的约定。
Maven的每⼀个动作都拥有⼀个⽣命周期,例如执⾏ mvn install 就可以⾃动执⾏编译,测试,打包等构建过程 只需要定义⼀个pom.xml,然后把源码放到默认的⽬录,Maven帮我们处理其他事情 使⽤Maven可以进⾏项⽬⾼度⾃动化构建,依赖管理(这是使⽤Maven最⼤的好处),仓库管理。
⼆、Maven下载 下载地址: 下载完成后,得到⼀个压缩包,解压,可以看到maven的组成⽬录 Maven⽬录分析bin:含有mvn运⾏的脚本boot:含有plexus-classworlds类加载器框架conf:含有settings.xml配置⽂件lib:含有Maven运⾏时所需要的java类库LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三⽅软件等简要介绍三、Maven安装 1、⾸先要确保电脑上已经安装了JDK(要jdk 1.6+的版本),配置好JDK的环境变量,使⽤如下的两个命令检查检查JDK安装的情况。
Maven学习笔记(3)--mvnarchetype:generate说明
Maven学习笔记(3)--mvnarchetype:generate说明上次说介绍mvn archetype:generate 的⼀直没空,现在继续:
这个命令其实很简单,直接敲就⾏了,不⽤任何参数,后⾯按照提⽰填写就能完成。
接下来会看到很长很长的列表,其实就是项⽬的模板。
第⼀个红框提⽰就是选择模板,700+的模板,⽬前没找到说明⽂件。
第⼆个红框选择模板的版本号
就下来红框,就是⼤家已经见过⽆数遍的4个参数,有默认参数提⽰的就可以直接回车。
最后确认就项⽬就建⽴起来了。
最后我建⽴个Nexus,maven的中继库。
欢迎⼤家可以使⽤我这个
另外能开多久我也不清楚,就不宣扬了。
maven学习笔记
Maven学习笔记1.下载与安装1. maven下载地址:/download.html。
这个是maven的官网下载地址。
我下载的版本是3.0.3。
2. 下载后解压,配置环境变量。
和配置jdk的环境变量的方法类似,我的电脑-->属性-->高级-->环境变量。
新建系统变量:M2_HOME,值为解压后目录,例: E:\apache-maven-3.0.3。
在path里添加%M2_HOME%\bin。
3. 检查maven是否安装成功:打开命令提示符,输入mvn –version,查看maven是否安装成功。
出现以上提示表示maven安装成功。
2.了解maven的安装目录3.搭建maven项目本文创建的工程所在的目录是E:\mavenDemo。
1.用maven命令创建一个简单的Maven的app项目。
在cmd中运行以下命令:该工程的groupId是ce.demo.mvn,那么该工程的源文件会放在Java包ce.demo.mvn中。
artifactId是app,那么该工程根目录的名称为app。
2.当第一次执行该命令时,Maven会从central仓库中下载一些文件。
这些文件包含插件archetype,以及它所依赖的其它包,耐心等待就可以了。
执行成功后应该是这个样子的:3.执行完毕后,在E:\mavenDemo目录下会出现一个app的文件夹。
它的目录布局应该是这个样子的:4.生成的工程里的pom.xml。
<project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>ce.demo.mvn</groupId><artifactId>app</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>app</name><url></url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies></project>5.创建完成之后,就需要在cmd执行一些命令来验证了。
Maven学习笔记一
Maven学习笔记⼀Maven 简介maven是apache下的⼀个开源项⽬,是纯java开发,⼀款服务于Java平台的⾃动化构建⼯具。
构建就是以我们编写的Java代码、框架配置⽂件、国际化等其他资源⽂件、JSP页⾯和图⽚等静态资源作为原材料,去⽣产出⼀个可以运⾏的项⽬的过程。
构建过程的⼏个主要环节清理:将以前编译得到的旧字节码⽂件删除,为下⼀次编译做准备编译:将Java源代码编译成字节码⽂件测试:⾃动调⽤junit程序报告:测试程序执⾏的结果打包:动态web⼯程打war包,java⼯程打jar包安装:将打包得到的⽂件复制打“仓库”中指定的位置部署:将动态Web⼯程⽣成的war包复制到Servlet容器指定的⽬录下,使其可以运⾏Maven好处1、普通的传统项⽬,包含jar包,占⽤空间很⼤。
⽽Maven项⽬不包含jar包,所以占⽤空间很⼩。
但还是需要jar的,只是没有存在于maven项⽬⾥⾯,⽽是存在本地仓库中。
2、依赖管理,只需要在pom.xml配置需要的插件,就能在在项⽬中使⽤。
主要是能够对jar包的统⼀管理,可以节省空间。
3、项⽬⼀键构建,maven可以进⾏编译、测试(junit)、运⾏、打包、部署。
⼀个 tomcat:run命令就能把项⽬运⾏起来。
4、可以跨平台5、应⽤于⼤型项⽬,可以提⾼开发效率。
Maven的安装配置1、下载安装Maven软件的核⼼⽂件:2、Maven环境变量配置前提是要配置jdk, maven3.3.9这个版本所需的jdk版本必须要1.7以上。
最终要运⾏的是maven软件中bin⽬录的mvn命令。
2.1 添加系统变量变量名:最好叫M2_HOME变量值:就是maven软件解压的⽬录,⽐如:F:\class32\apache-maven-3.3.92.2 把M2_HOME添加到系统变量的path末尾,注意加分号。
2.3 验证maven是否配置成功打开dos窗⼝,输⼊: mvn –vMaven仓库Maven有三种仓库1、本地仓库,⾃⼰维护如果想要修改maven的本地仓库位置,可以在maven的安装⽬录下的conf⽬录下的settings.xml配置⽂件中设置。
maven笔记(maven笔记)
maven笔记(maven笔记)maven笔记(maven笔记)1、maven 最主要的命令mvn clean compile / / 编译mvn clean test / / 编译测试类, 测试mvn clean package / / 打包, 默认 (jar)mvn clean install / / 安装到本地maven仓库, 以供其他工程使用可以理解为4个生命周期, 执行后面的会把前面的执行上, 如执行test, 会自动先执行compile.又如install会先执行compile、test、package2、构件 - - - - 概念在maven里, 任何一个依赖、插件或者项目构建的输出, 都可以称为构件.3、maven的build包含生命周期阶段可以大致理解为:1、initialize2、compile3、test4、package5、integrationtest6、deploy4、default生命周期的内置插件绑定关系及具体任务生命周期阶段插件: 目标执行任务process resources maven plugin: resources 复制主要资源文件至主输出目录 resourcesmaven compile compiler plugin: compile 编译主代码至主输出目录process test resources maven plugin: testresources复制测试资源文件至测试输出 resourcestest compile maven compiler plugin: testcompile 编译测试代码至测试输出目录test - surefire maven plugin: test 执行测试用例package maven jar: jar 创建项目jar包 plugininstall maven install plugin: install 将项目输出构件安装到本地仓库- deploy deploy maven plugin: deploy 将项目输出构件部署到远程仓库5、跳过test的installmvn install -dmaven.test.skip = truemvn install dskiptests6、输出详细stack可以加参数 - x7、pom继承父pom的写法< object >< >, < / groupid com.suning.sample groupid >> < artifactid hgv sample pom < / artifactid >< >, < / > 0.0.1 version version< >. relativepath / hgv sample pom / pom.xml relativepath > </parent > < /8、通过依赖管理 - dependencymanagement可以实现各pom的版本统一:父pom在dependencymanagement中写完整的dependency, 子类只写部分内容的dependency (如不写版本)剩余的从父类的dependencymanagement中继承, 从而实现只要更改父pom即可更改所有相关pom的版本.优点是如果子pom中没有相关dependency, 子pom不会引人父pom的dependencymanagement, 相当灵活.9、插件管理 - pluginmanagement类似上面第8条的dependencymanagement10、聚合与继承是两个概念, 聚合是方便快速构建项目, 继承为了消除重复配置.11、遵循约定优于配置12、聚合项目的构建顺序不单单取决于pom在聚合pom中的顺序, 当遇到继承和依赖时顺序类似于spring的bean装载的顺序.13、有聚合pom的情况下, 执行聚合pom单独构建指定模块的指令:mvn clean install pl project - module1, project module214、创建私服可使用nexus15、maven - surefire - plugin的test目标会自动执行测试路径: src / test / java下面* * / test *. java* * / * test.java* * / * testcase.java这几个命名格式的类16, dynamically specifies the test cases to runMVN test -Dtest = < test case class that needs to be tested >17, Maven Profile can be implemented in different settings under different environments, the application is equivalent to modify a subset of pom.Developers use the MVN command and then add -Pdev to activate dev profile, and the rest of the same.<profiles><profile><id>dev</id><activation><activeByDefault>true</activeByDefault></activation><build><filters><filter>../${project.parent.artifactId}/vars/vars.dev.properties</fi lter></filters></build></profile><profile><id>pre</id><build><filters><filter>../${project.parent.artifactId}/vars/vars.pre.properties</filter></filters></build></profile><profile><id>prod</id><properties><snf-quartz.version>0.0.1</snf-quartz.version></properties><build><filters><filter>../${project.parent.artifactId}/vars/vars.prod.properties</f ilter></filters></build></profile></profiles>18, Maven attribute propertiesYou can get it by default through ${name}, as long as the file is configured as the resource pathIf you get the attribute values by file.Properties, you can configure the change to default access mode in the plug-in maven-resources-plugin. For more details, see snf-parent.pom<properties> elements can be used to facilitate the management of pom.Such as <properties><db2-jdbc-version>9.7.0.4</db2-jdbc-version></properties>Later in POM, you need to use the value of the 9.7.0.4 version, as long as you use it<version>${db2-jdbc-version}</version>19, about build.filters.filterDefine filtering to replace the corresponding property file, using the attributes defined by maven.Properties load order for maven1. Configuration in <build><filters>2, <properties> in pom.xml20, problem: when the project documents are nothing wrong, but the project folder appears X, may be due to the change of the main project POM, but the sub project does not update dependenceSolution: right hit Engineering - "Maven -" Update Maven Dependencies can be21, the project packaged into war package, must have web.xml. Web.xml defines the structure of the war package22, set the default JDK version of maven:1, modify the settings.xml file<profile><id>jdk-1.6</id><activation><activeByDefault>true</activeByDefault><jdk>1.6</jdk></activation><properties><piler.source>1.6</piler.source><piler.target>1.6</piler.target><pilerVersion>1.6</pilerVersion> </properties></profile>Of course, you can modify the plug-in configuration in POM, but each time it is difficult to configure, but it is recommended to configure. This is easy to transplant.。
BetterBuildswithMaven学习笔记
Better Builds with Maven学习笔记第一章 Maven介绍Maven是什么Maven包括一系列构建标准:一个产品库模型,一个管理和描述项目的软件引擎。
定义了构建、测试、部署项目产品的标准生命周期。
提供了一个简单实用符合 Maven标准的通用构建逻辑。
是一个在Apache软件基金会下的开源项目,是一个声明式项目管理工具(通过项目对象模型Project Object Model),用来简化软件项目管理过程的框架。
Maven好处一致(Coherence)Maven以一系列最佳实践为基础使组织标准化,因为Maven是根据标准化模型构造的。
重用(Reusablity)Maven构建于可重用的基础之上。
当你使用Maven时你可以高效的重用整个行业完整的最佳实践。
敏捷(Agility)Maven降低了重用构建逻辑和软件组件的门槛。
使创建一个组件然后再整合它到多个项目中变得容易。
可维护(Maintainability)使用Maven的组织不必为了构建而构建,可以集中精力于构造应用程序。
Maven项目的可维护性是很高的,因为它遵从了通用的公共定义模型。
Maven原则习惯优于配置(Convention over configuration)标准的项目目录结构这个就不解释了,应该都明白一个项目一个主输出的思想举个例子,如果有一个客户端/服务端项目,Maven只能有一个输出,所以Maven鼓励把该项目分割成3个子项目,客户端一个,服务器端一个和公共类库 一个,通过依赖性来引用jar包,这样符合依赖拆分(separation of concerns(SoC))原则标准命名规则如<artifactId>-<version>.<extension>(产品名-版本号.扩展名)common-logger-1.2.jar不能叫common-logger.jar,因为缺少版本号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mavenEclipse中Maven项目建立步骤: (2)建Maven项目时groupId、artifactId、version 和package的含义: (4)Maven项目文件夹含义: (4)Maven配置: (5)maven install与maven build的区别 (20)Maven是做什么的? (20)Eclipse中Maven项目建立步骤:创建一个Maven Project:1、项目目录区右键New --> Other --> Maven ProjectMaven Project可以理解为父工程。
Maven Module可以理解为子工程。
创建Maven Module工程必须有存在的父工程,maven就是通过父子工程进行工程管理的。
2、在弹出的对话框里,如果你想修改你项目的存放路径你可以改一下,其他的默认,我的所有项目都是存放在默认的工作区下,所以直接点NEXT3、接下来找到并选择webapp,其他的默认,NEXTArchetype:项目骨架,项目的目录和文件结构,快速项目可以选quickstart选项4、填写你的groupId、artifactId、version 和package 信息,然后Finish(Finish 之后myeclipse在创建maven的时候可能会弹出错误框提示,没事,不用管它,直接按两次回车或手动关闭提示框)建Maven项目时groupId、artifactId、version 和package的含义:groupId:group 翻译成中文就是组、集团的意识,groupId就是这样一个组或集团的ID标识,就拿Apache 来说好了,Apache 大家都不陌生吧,Apache 官网上有非常多的项目,每个项目里面肯定能找得到org.apache.xxxx,而org.apache 就是这里说的groupId artifactId:还是拿Apache 来说,Apache 官网上有非常多的项目,而每个项目的名字就是这里的artifactId,换句话说,artifactId 就是你的项目名version:这个就没有什么好解释的了吧,是项目版本的意思package:这个也没什么好说的,就是groupId.artifactId,创建的时候会自动帮你补全,如果没有自动帮你补全就自己手动敲上去创建maven项目的module项目(子项目):右键父项目-->maven-->new maven module projectPS: 如果报错 The parent project must have a packaging type of POM是将pom.xml 中的 <packaging>jar</packaging> 改成 <packaging>pom</packaging>添加项目依赖:项目pom文件右键-->maven-->add dependency-->由id查找项目添加Maven项目文件夹含义:src存放源代码target存放编译后的代码,pom.xml: Project Object Model项目对象模型,定义了项目的基本信息,用于描述项目如何构建,声明依赖等等。
main中存放用来发布至生产环境的代码及配置test中存放测试时使用的代码及配置java中存放java代码resource中存放配置文件wabapp存放web页面代码src/main/java application library sources - java源代码文件src/main/resources application library resources - 资源库,会自动复制到classes文件夹下src/main/filters resources filter files - 资源过滤文件src/main/assembly assembly descriptor - 组件的描述配置,如何打包src/main/config configuration files - 配置文件src/main/webapp web application sources - web应用的目录,WEB-INF,js,css等src/main/bin 脚本库src/test/java 单元测试java源代码文件src/test/resources 测试需要的资源库src/test/filters 测试资源过滤库src/site 一些文档target/ 存放项目构建后的文件和目录,jar包,war包,编译的class文件等;Maven构建时生成的pom.xml 工程描述文件LICENSE.txt licenseREADME.txt read meMaven配置:1、环境变量:正常情况下maven配置环境变量和java一样,建立Maven_Home放置maven安装路径,然后将mavenhome加到path中2、maven配置是通过setting.xml配置的,详解:概览:当Maven运行过程中的各种配置,例如pom.xml,不想绑定到一个固定的project或者要分配给用户时,我们使用settings.xml中的settings元素来确定这些配置。
这包含了本地仓库位置,远程仓库服务器以及认证信息等。
settings.xml存在于两个地方:1).安装的地方:$M2_HOME/conf/settings.xml2).用户的目录:${user.home}/.m2/settings.xml前者又被叫做全局配置,后者被称为用户配置。
如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml优先。
如果你偶尔需要创建用户范围的settings,你可以简单的copy Maven安装路径下的settings到目录${user.home}/.m2。
Maven默认的settings.xml是一个包含了注释和例子的模板,你可以快速的修改它来达到你的要求。
Setting.xml文件内容:<?xml version="1.0" encoding="UTF-8"?><settings xmlns="/SETTINGS/1.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/SETTINGS/1.0.0 /xsd/settings-1.0.0.xsd"><!--简单的值一半以上的顶级settings元素师简单的值,代表了一直处于活跃的构建系统的元素的取值范围。
--><localRepository>E:/project/localRepository</localRepository><interactiveMode>true</interactiveMode><usePluginRegistry>false</usePluginRegistry><offline>false</offline><!--插件组当插件的组织Id(groupId)没有显式提供时,供搜寻插件组织Id(groupId)的列表。
该元素包含一个pluginGroup元素列表,每个子元素包含了一个组织Id(groupId)。
当我们使用某个插件,并且没有在命令行为其提供组织Id(groupId)的时候,Maven就会使用该列表。
这个列表自动的包含了org.apache.maven.plugins和org.codehaus.mojo。
(后面详解)--><pluginGroups><pluginGroup>org.mortbay.jetty</pluginGroup></pluginGroups><!--例如,有了上面的配置,Maven命令行可以使用简单的命令执行org.morbay.jetty:jetty-maven-plugin:run,如下:mvn jetty run--><!--服务器用来下载和部署的仓库是用POM中的repositories和distributionManagement元素来定义的。
但是某些配置例如username 和password就不应该随着pom.xml来分配了。
这种类型的信息应该保存在构建服务器中的settings.xml中。
--><servers><server><id>ccl-nexus</id><username>my_login</username><password>my_password</password><privateKey>${user.home}/.ssh/id_dsa</privateKey><passphrase>some_passphrase</passphrase><filePermissions>664</filePermissions><directoryPermissions>775</directoryPermissions><configuration></configuration>//传输层额外的配置项</server></servers><!--镜像--><mirrors><mirror><id>ccl-nexus</id><name>19lou Nexus Public Mirror</name><url>http://172.16.10.99:8081/nexus/content/groups/public</url><mirrorOf>*</mirrorOf></mirror></mirrors><!--代理--><!--用来配置不同的代理,多代理profiles 可以应对笔记本或移动设备的工作环境:通过简单的设置profile id就可以很容易的更换整个代理配置。