maven学习报告第一天
- 格式:doc
- 大小:16.00 KB
- 文档页数:1
《Maven实战》笔记-1-Maven使⽤⼊门《Maven实战》徐晓斌 2011 机械⼯业出版社⼀、介绍1、名词artifact:插件极限编程XP2、构建脚本:maven——pom.xml(Project Object Model)ant——build.xml其基本结构是⽬标(target)、依赖(depends),以及实现⽬标的任务。
3、maven vs antAnt是过程式的,开发者显⽰指定每⼀个⽬标,以及完成该⽬标所需要执⾏的任务。
Maven是声明式的,项⽬构建过程和过程各个阶段所需的⼯作都由插件实现。
4、相关知识Spring——实现IoC;Hibernate——实现封装JDBC;Eclipse安装⽬录eclipse.ini⽂件,添加vm配置指向jdk:1. --launcher.SSMaxPermSize2. 256m3. -vm4. D:\java\jdk1.7\bin\javaw.exe5. -vmargs6. -Dosgi.requiredJavaVersion=1.57. -Xms128m8. -Xmx256mm2eclipse——Eclipse下的Maven插件。
⼆、Maven使⽤⼊门——以Hello World为例1、mvn help:system——打印所有的Java系统属性和环境变量。
推荐⽤户复制M2_HOME/conf/settings.xml⽂件到~/.m2/settings.xml,在⽤户范围内修改Maven配置,⽽不是在全局范围修改。
Maven的核⼼是pom.xml,⼀个HelloWord项⽬的pom.xml:参数解释:modelVersion——POM模型的版本,对于Maven2以及Maven3来说,它只能是4.0.0核⼼三元素——groupId、artifactId、version,定义了⼀个项⽬基本的坐标;在Maven的世界,任何的jar、pom或者war都是基于这些基本的坐标进⾏区分。
maven的学习1maven 的介绍从字面解释maven是知识渊博、经验丰富的专家或怪才的意思。
深入研究和使用maven,确实让人感到它确实沉淀了Java项目构建领域中的丰富知识和经验,并以一种高度可复用的形式出现在你的面前。
maven的开发者在他们开发网站上指出,maven的目标是要使得项目的构建更加容易,它把编译、打包、测试、发布等开发过程中的不同环节有机的串联了起来,并产生一致的、高质量的项目信息,使得项目成员能够及时地得到反馈。
maven有效地支持了测试优先、持续集成,体现了鼓励沟通,及时反馈的软件开发理念。
如果说Ant的复用是建立在"拷贝--粘贴"的基础上的,那么Maven通过插件的机制实现了项目构建逻辑的真正复用。
2maven的环境搭建首先去官方网站下载之:/dyn/closer.cgi/maven/binaries/apache-maven-2.2.1-bin.zip,我选择的是截至目前最新版本maven2.2.1版本2.1设置环境变量:Maven2下载完后,我将其解压到我的计算机的D:\javatools\apache-maven-2.2.1下,目录结构如下:环境变量:我的电脑----属性----高级----环境变量,点击“系统变量”下的新建,输入:变量名MAVEN_HOME; 变量值D:\javatools\apache-maven-2.2.1,在系统变量列表中找到系统变量path,打开之,在变量值中追加”;%MAVEN_HOME%\bin”,至此环境变量设置完毕。
检查一下是否已经完成安装,打开dos窗口,输入mvn –v,如果出现以下信息则表示maven2已经安装成功:2.2本地仓库配置:D:\javatools\apache-maven-2.2.1\conf目录下的setting.xml文件中修改两处:第一处:修改为自己对应的本地仓库目录:第二处:修改为:sky-mobi公司己经有架设一台mavan仓库,供大家使用3Maven生命周期4常用的Maven命令1. 创建Maven的普通java项目:mvn archetype:create -DgroupId=packageName -DartifactId=projectName2. 创建Maven的Web项目:Mvn archetype:create -DgroupId=packageName -DartifactId=webappName –DarchetypeArtifactId = maven-archetype-webapp3. 编译源代码:mvn compile4. 编译测试代码:mvn test-compile5. 运行测试:mvn test6. 产生site:mvn site7. 打包:mvn package8. 清除产生的项目:mvn clean9. 生成eclipse项目:mvn eclipse:eclipse,生成idea项目mvn idea:idea 这年头现在先进了,不用运行也能导入idea工具上了。
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实际上通过多模块的思想来组织依赖的,每一个项目或者jar都是一个模块,我们可以把一些通用的,不常变动的东西写在一些指定的模块下,在另外一个项目中引用依赖(这里就有点类似【1、依赖管理】,这样一来可以让项目结构更清晰、方便别人依赖使用,如果项目都是一个模板,也可以复用等等4、生命周期maven将项目的生命周期大致分为9个,分别为:clean、validate、compile、test、package、verify、install、site、deploy我经常用的也就是clean、compile、package、install、deploy,而且deploy相对也较少,因为很少发布公共的项目供别人依赖使用,基本也就是项目打包为war时候会打包到私服,运维人员可以到私服上直接下载对应版本。
29_maven_初步(由于中央仓库无法访问,该部分稍微有些乱)1. 如果使用Ant分模块的管理时,依赖的管理不是很好操作;maven可以解决这个问题;2. 配置:将maven的bin目录加入到环境变量path中:例如:3. 命令:查看maven版本:mvn -version4. pom.xml中几个最基本的元素:①groupId:项目的项目组,和包名一致②artifactId:标识项目中的模块,建议使用项目名称-模块名称例如:project-module③version:版本,其中,快照版本,是一种特殊的版本④modelVersion 固定值4.0.0⑤pom.xml示例:<modelVersion>4.0.0</modelVersion><groupId>com.itmuch.maven.hello</groupId><artifactId>hello-first</artifactId><version>0.0.1-SNAPSHOT</version>5. maven中的路径的约定俗成:①java文件放在src/main/java目录中②test文件放在src/test/java目录中6. 进入pom.xml所在的目录,执行mvn compile,可编译项目7. 执行mvn test命令,可执行单元测试8. 执行mvn clean命令,可清除产生的项目,默认清理target目录中的数据9. 执行mvn package命令,可以打包10. 执行mvn install命令,可打包,并将该包放入本地仓库中11. 添加依赖:<dependencies><dependency><groupId>com.itmuch.maven.hello</groupId><artifactId>hello-first</artifactId><version>SNAPSHOT-0.0.1</version></dependency></dependencies>12. maven的优势:可以在不同的项目之间,有效地进行项目的管理30_maven_初步_思路讲解和archetype的使用和eclipse的安装1. 执行maven deploy命令,可发布到私服中2. 执行maven archetype:genarate命令,可自动创建项目3. 使用Eclipse开发maven项目①不要使用Eclipse自带的maven,而应该用自己的maven,配置方法:Window - Preferences - Maven - Installations - 选择自己的maven的路径②选择settings.xml文件,配置方法:Window - Preferences - Maven - User Settings - 选择settings.xml文件③新建项目:右击- New - Other - Maven Project - 选择创建31_maven_依赖_环境搭建和依赖的范围1. maven的三大块内容:依赖、仓库、生命周期和插件2. 依赖通过坐标来进行查找的(GAV-->groupId、artifactId、version )3. 有一些网上的仓库提供了坐标的查询:例如:①②/nexus/4. 中央工厂:maven/lib/maven-model-build.jar中的maven-model-builder-3.2.1.jar中:org\apache\maven\model\pom-4.0.0.xml配置的<repository><id>central</id><name>Central Repository</name><url>/maven2</url><layout>default</layout><snapshots><enabled>false</enabled></snapshots></repository>5. 依赖的传递性:①依赖是会被传递的,例如:A依赖C,B依赖A,那么B就自动依赖C(这种依赖是基于compile这个作用域来进行传递的,如果指定了scope是test,那么依赖并不会传递到另一个项目的compile包中去)②对于依赖的传递而言,主要是针对compile作用域传递6. 依赖的范围:①test范围指的是测试范围有效,在编译和打包时,都不会使用这个依赖②compile范围指的是编译范围有效,在编译、打包时都会将依赖存储进去【默认】③provided范围指的是在编译和测试的过程有效,最后生成war包时不会加入,例如servlet-api,因为tomcat等web服务器已经存在了,如果再打包会冲突④runtime在运行时会依赖,在编译的时候不依赖(不常见)⑤import⑥system32_maven_依赖_传递性依赖的冲突的问题1. 传递性依赖的冲突问题:①a-->b1.0 c-->b1.1 d-->a和c,此时:在d的pom中,哪一个依赖先写,就使用先写依赖的版本示例:如果d的pom中:<dependency>a</dependency><dependency>c</dependency>那么,d所依赖的b的版本是b1.0②a-->b1.0 c-->b1.1 d-->a和c f-->d和c,如果路径的长短不一致,就选最短路径分析:d-->a和c,可由①中规则推出:d-->b1.0;本例中,f找到b的路径分别是:f-d-a-b和f-c-b所以本例中,f-->b1.1 2. 如果希望精确控制依赖包,可以使用依赖的排除功能进行控制:33_maven_依赖_继承和聚合1. 聚合的优势:可以在一个地方编译多个pom文件;示例:<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>com.itmuch.maven</groupId><artifactId>maven-parent</artifactId><version>0.0.1-SNAPSHOT</version><!-- 聚合时,必须用pom --><packaging>pom</packaging><!-- 使用modules元素,聚合其他项目 --><modules><!-- 被聚合的项目的路径 --><module>../maven-dao</module><module>../maven-service</module></modules></project>2. 继承:①父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>com.itmuch.maven</groupId><artifactId>maven-parent</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><url></url><!-- 定义properties,可使用${名称}来调用,例如:${junit.version} --><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><junit.version>4.10</junit.version></properties><!-- 使用dependencyManagement,可对依赖进行管理。
Maven学习笔记1.M aven安装1.1下载从apache的站点下载:htt p://maven.apache.org/download.cgi本文使用的3.1.1的maven1.2解压修改把下载的文件进行解压,之后修改如下文件apache-ma ven-3.1.1\conf\setti ng.xml因为默认的本地仓库是u ser.home下,所以修改为本地的路径并创建相应路径的仓库文件夹,即G:\M avenStudio\repositor y,并在其同级目录下copy 一份sett ing.xml的文件1.3添加环境变量在path变量末尾增加apache-m aven-3.1.1\bin;路径1.4测试安装效果Cm d-mvn –V,如下图2.Nexus安装2.1下载下载站点:http://www.sonat /ne xus/go从如下站点下载Nexus本文使用的是2.9.0的版本2.2修改修改如下路径文件nexus\nexu s-2.9.0-04-bundle\ne xus-2.9.0-04\bin\jsw\conf\ wra pper.conf修改如下把路径改为本地jdk的ja va路径2.3环境变量把环境变量添加到path中nex us\nexus-2.9.0-04-bu ndle\nexus-2.9.0-04\bin2.4启动注册服务启动服务2.5打开打开nexus连接http://loc alhost:8081/nexus3.Ne xus使用3.1登陆要管理Nexus,你首先需要以管理员身份登陆,点击界面右上角的login,输入默认的登录名和密码:admin/adm in123,登陆成功后,你会看到左边的导航栏增加了很多内容:这里,可以管理仓库,配置Nexus系统,管理任务,管理用户,角色,权限,查看系统的RSS源,管理及查看系统日志,等等。
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。
目录1. 安装maven (1)2. Maven使用 (1)2.1 编写pom (1)2.2 根据pom.xml中的配置,新建各种包名 (3)2.2.1 源代码的默认结构如下:src/main/java (3)2.2.2 测试代码的默认结构如下:src/test/java (3)2.3 相关命令 (4)3. 使用Archetype生成项目骨架 (4)4. 在eclipse中安装m2e (4)5. 依赖范围 (5)。
......................................................................................................... 错误!未定义书签。
1.安装maven下载安装包,解压缩后,将安装包/bin添加到环境变量path中验证是否安装成功:mvn –vPom.xml—配置文件—重要运行mvn help:system,打印出java系统属性和环境变量。
用户目录:C:\User\fang\.m2将maven安装目录中的conf/settings.xml文件复制到~/.m2/settings.xml说明:安装目录中的settings文件是全局范围的,若修改整台机器上所有用户都会直接受到影响。
后者是用户范围的,只有当前用户会受到影响。
2.Maven使用2.1编写pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.sunfangfang.mvnbook</groupId><artifactId>helloworld</artifactId><version>1.0-SNAPSHOT</version><name>Maven Hello World Project</name><packaging>war</packaging><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.7</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.5</source><target>1.5</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>1.2.1</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><transformers><transformerimplementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>com.sunfangfang.mvnbook.helloworld.Hello World</mainClass></transformer></transformers></configuration></execution></executions></plugin></plugins></build></project>2.2根据pom.xml中的配置,新建各种包名2.2.1源代码的默认结构如下:src/main/java在默认结构下新建com/sunfangfang/mvnbook/helloworld文件夹在helloworld文件夹下新建java文件,如下package com.sunfangfang.mvnbook.helloworld;public class HelloWorld{public String sayHello(){return "Hello Maven!";}public static void main(String[] args) {System.out.println(new HelloWorld().sayHello());}}2.2.2测试代码的默认结构如下:src/test/java在默认结构下新建com/sunfangfang/mvnbook/helloworld文件夹在helloworld文件夹下新建java文件,如下package com.sunfangfang.mvnbook.helloworld;import static org.junit.Assert.assertEquals;import org.junit.Test;public class HelloWorldTest{@Testpublic void testSayHello(){HelloWorld helloWorld = new HelloWorld();String result = helloWorld.sayHello();assertEquals("Hello Maven!",result);}}2.3相关命令mvn clean compilemvn clean testmvn clean packagemvn clean install命令的依赖关系:执行test之前会先执行compile,执行package前会执行test,执行install前会执行package。
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还提供了许多插件,可以帮助我们完成各种任务,如测试、发布等。
在实验中,我们首先学习了如何创建一个maven项目。
通过创建一个新的maven项目,我们可以快速创建一个包含基本依赖关系的项目结构。
然后,我们学习了如何添加和管理项目依赖。
通过使用maven 的依赖管理功能,我们可以轻松地添加和删除项目依赖,而不必手动下载和配置依赖项。
接下来,我们学习了如何使用maven进行项目构建和打包。
通过使用maven的命令行工具或在idea中执行maven命令,我们可以快速构建和打包项目。
这可以大大简化我们的项目构建过程,并确保我们的项目能够正确地构建和运行。
最后,在实验中,我们还学习了如何使用maven插件来完成各种任务。
例如,我们学习了如何使用maven-surefire插件来运行单元测试,以及如何使用maven-release插件来发布项目版本。
总的来说,本次实验让我们更好地了解了如何使用idea maven 进行项目管理和构建。
通过使用maven,我们可以方便地管理项目依赖和构建项目,并确保项目能够正确地构建和运行。
- 1 -。
学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)一、前言早就知道maven 在java 项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档。
发现这些文档的作者都是java 的大腕,大多都是站在掌握了一定maven 基础的角度上进行介绍,让我这初学者看的云里雾里不知所云。
于是又去查看maven 的官方网站,总算是有所了解,但一旦动手实际操作却又雾里看花。
唉,没办法,就只有一遍一遍的动手尝试,经过种种磨难总算是有一点眉目了。
现在就将我的经验写出来,一来避免将来遗忘,二来也给和我一样的菜鸟们提供一点点的方便。
呵呵。
本文的主题在于实用操作,个中原理还是麻烦大家去查一下java大腕们的文章吧。
这里推荐两篇文章:Maven 2.0:编译、测试、部署、运行[url]/html/doc/2006/06/14/00847.html[/url]Maven2 的新特性[url]/developerworks/cn/opensource/os-maven2/index.html[/url]二、maven2安装1、首先去官方网站下载之:[url]/download.html[/url],我选择的是截至目前最新版本maven2.0.4版本2、设置环境变量:Maven2下载完后,我将其解压到我的计算机的d:\maven204下,目录结构如下:D:\|--Maven204|-- bin|-- conf|-- core|-- lib|-- local环境变量:(操作系统windows2003)我的电脑----属性----高级----环境变量,点击“系统变量”下的新建,输入:变量名MA VEN_HOME; 变量值d:\Maven204,在系统变量列表中找到系统变量path,打开之,在变量值中追加”;%MA VEN_HOME%\bin”,至此环境变量设置完毕。
检查一下是否已经完成安装,打开dos窗口,输入mvn –v,如果出现以下信息则表示maven2已经安装成功:X:〉mvn –vMaven Version 2.0.4我已经说得够详细了,还不行?那我只能说你比我还菜。
Maven学习报告
一.今天学习的内容
1.Maven简介
2.Maven的安装和配置
3.Maven使用入门
4.背景案例
5.坐标和依赖
二.每章节的学习总结
1.Maven简介
Maven是一个跨平台的项目管理工具。
Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。
构建:maven可以自动的清理、编译、测试到生成报告,再到打包和部署。
管理:可以把在项目中各个角落的项目信息,包括项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址等。
2.Maven的安装和配置
在安装有jdk的基础上安装maven
安装包apache-maven-3.0-bin.zip
环境变量:M2-HOME [maven的安装目录]
Path[%M2-HOME \bin%;]
3.Maven使用入门
Maven的项目核心是pom.xml
标签:modelVersion--------当前pom模型的版本
groupId、artifactId、verson定义了一个项目基本的坐标。
dependencies下的多个dependency声明项目的依赖
Mvn clean compile用来编译代码
依次执行clean、删除target、resources、compiler。
Mvn clean test 测试
Mvn clean package 打包
Mvn clean install 安装
4.背景案例
一个简单的账户注册服务
5.坐标和依赖
Maven坐标:maven通过坐标下载构件,构件在maven内置的中央仓库中。
groupId:定义当前maven项目隶属的实际项目。
artifactId:实际项目名称中的一个模块。
Verson:maven项目所处的版本。
、
Packaging:打包方式。
默认jar
Clssifiler:定义构建的附属构件。