maven教程(一)配置环境

来源:互联网 发布:单片机和嵌入式的区别 编辑:程序博客网 时间:2024/05/16 07:37

今天一个学长给了我一个项目,我一整不会,他告诉我是maven,于是我就研究了一下,这等于是给我加了课外作业了,= = !得和大家分享一下,还是要感谢广大的博主们,我在这里再次整理一下吧:

Maven是一个采用纯Java编写的开 源项目管理工具。Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等。目前Apache下绝大多数项目都已经采用Maven进行管理。而Maven本身还支持多种插件,可以方便更灵活的控制 项目。 

1:http://maven.apache.org/download.cgi 下载最新版本 Maven 3.212 (Binary zip) 

2:解压到 D: 

我放在这里了:D:\apache-maven-3.2.1

3:配置环境变量 
   MAVEN_HOME : D:\apache-maven-3.0.2 
   MAVEN : %MAVEN_HOME%\bin 
  (可选) MAVEN_OPTS : -Xms256m -Xmx512m 

   在path 前面 加上 %MAVEN%; 

3:配置环境变量 
   MAVEN_HOME : D:\apache-maven-3.0.2 
   MAVEN : %MAVEN_HOME%\bin 
  (可选) MAVEN_OPTS : -Xms256m -Xmx512m 

   在path 前面 加上 %MAVEN%; 


4:验证安装是否成功 
在命令行上输入 : mvn -version; 回车,如看到下面信息表示安装成功: 

5:创建项目 
在命令行上输入 :mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app 回车,
 
如果你是首次运行该命令(goal),maven将要花一些时间去把最新的工具包(Maven 把它叫作artifacts)下载到你的本地仓库。 



命令执行完后你将看到maven生成了一个名为my-app的目录,这个名字就是你在命令中指定的artifactId,进入该目录,你将发现以下标准的项目结构: 
这是xp下的目录:


其中:src/main/java 目录包含了项目的源代码,src/test/java 目录包含了项目的测试代码,pom.xml是项目的项目对象模型(Project Object Model or POM)。 
6:POM 
pom.xml 文件是maven对一个项目的核心配置,这个文件将包含你希望如何构建项目的大多数配置信息。POM大而复杂,但你不用全部去了解,只要使用一些常用的配置就可以了。下面列出这个POM的内容: 

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">   
  3.   <modelVersion>4.0.0</modelVersion>   
  4.   
  5.   <groupId>com.mycompany.app</groupId>   
  6.   <artifactId>my-app</artifactId>   
  7.   <version>1.0-SNAPSHOT</version>   
  8.   <packaging>jar</packaging>   
  9.   
  10.   <name>my-app</name>   
  11.   <url>http://maven.apache.org</url>   
  12.   
  13.   <properties>   
  14.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>   
  15.   </properties>   
  16.   
  17.   <dependencies>   
  18.     <dependency>   
  19.       <groupId>junit</groupId>   
  20.       <artifactId>junit</artifactId>   
  21.       <version>3.8.1</version>   
  22.       <scope>test</scope>   
  23.     </dependency>   
  24.   </dependencies>   
  25. </project>   

7:第5步我们做了什么 
引用
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app

执行Maven 命令(goal)archetype:create,并且设置了一些参数( -DgroupId=com.mycompany.app -DartifactId=my-app) 

在这个命令中,前缀 archetype 是包含create命令的一个maven的plugin。这个goal命令根据项目原型(符合maven标准的项目模板)建立了一个简单的项目。 

现在可以确定地说,一个maven plugin 就是一些有着相同目的的goals命令的集合,例如 jboss-maven-plugin 这个插件,就是为了处理各种和jboss相关的任务。 

8:Build 项目 
在命令行上 输入 : cd my-app 回车,进入到 项目路径下 



再输入 mvn package 回车这时命令行将会打印出各种动作,并且以下面一段信息结束: 



与首次执行的命令(那是一个goal
引用
archetype:create
不同,这次执行的只是一个简单的命令---package。不同于goal,这是一个phase(阶段),一个phase是指构建生命周期的一个阶段,构建生命周期是指有序的一系列phase。当给出一个phase,Maven将执行所有的在此阶段前的phase及其自身,例如,如果我们执行compile阶段,实际上执行的阶段有: 
引用
validate 
generate-sources 
process-sources 
generate-resources 
process-resources 
compile

你可以使用以下的命令来测试新编译和打包出来的jar包, 
引用
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App

这时将打印出最经典的: 
引用
Hello World!



9:运行Maven工具 

虽然很难列出一张非常全面的表,但在此可先列出最普通的默认的生命周期阶段: 
引用
validate:验证工程是否正确,所有需要的资源是否可用。 
compile:编译项目的源代码。   
test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。 
Package:把已编译的代码打包成可发布的格式,比如jar。 
integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。 
verify:运行所有检查,验证包是否有效且达到质量标准。 
install:把包安装在本地的repository中,可以被其他工程作为依赖来使用。 
Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。 
clean:清除先前构建的artifacts(在maven中,把由项目生成的包都叫作artifact)。 
site:为项目生成文档站点。 
  
上面列出的各个Phases(阶段)实际上对应着潜在的goals,特殊的每个阶段执行的特殊的goals由项目的类型所决定,例如:如果项目的类型是jar,package阶段将默认执行jar:jar的goals,如果项目类型是war,那么package阶段执行的goals将是war:war。 
有件有趣的事情需要注意,那就是phases和goals需要按一定的顺序来执行。 
mvn clean dependency:copy-dependencies package 
这个命令将先清除项目,然后拷贝依赖,最后把项目打包,当然,在打包之前,会先执行此阶段之前的阶段.如compile,test等. 
生成站点 
mvn site 
这个阶段生成基于pom.xml配置的项目信息。你可以在target/site目录下看到生成的文档。





更多0
3
0
主题推荐
maven单元测试项目管理源代码开发者
博文推荐
“分手吧!”一句简单的言语结束了复杂的感情
hadoop学习笔记之maven、mah...
Eclipse安装Maven插件
Spark大师之路:使用maven编译S...
maven基础学习(三)-简单实例(运行)
图——关键路径用JAVA代码实现
JDK源码学习----java.long...
sql视图
查看评论
1楼 soledadzz 昨天 11:47发表 [回复]
您的文章已被推荐到CSDN首页,感谢您的分享。
Re: 另一花生 昨天 15:30发表 [回复]
回复soledadzz:谢谢!
发表评论
  • 用 户 名:
  • u014641938
  • 评论内容:
  • 插入代码
      
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
快速回复TOP
核心技术类目
全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFCWAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IISFedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMUKDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 RackspaceWeb App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby HibernateThinkPHP Spark HBase Pure Solr Angular Cloud Foundry Redis Scala DjangoBootstrap
    个人资料
     
    另一花生
     
    • 访问:16708次
    • 积分:883分
    • 排名:第18027名
    • 原创:41篇
    • 转载:4篇
    • 译文:1篇
    • 评论:204条
    文章分类
  • java学习分享(25)
  • 数据库技术(2)
  • java基础学习(9)
  • eclipse(3)
  • IDE工具使用(4)
  • SVN服务器的搭建和使用(5)
  • mysql(3)
  • CodeStudy杂谈(1)
  • maven(1)
    文章存档
  • 2014年04月(2)
  • 2014年03月(9)
  • 2014年02月(11)
  • 2014年01月(16)
  • 2013年10月(8)
    阅读排行
  • 一个女大学生的代码学习之路(一)(4129)
  • maven教程(一)配置环境(1302)
  • Java WEB开发--国际化(一)(963)
  • java WEB开发国际化(二)(939)
  • 使用eclipse开发python(840)
  • 关于hibernate.cfg.xml头文件DTD的引入(683)
  • 接口回调的原理:接口变量 调用 被类实现的接口的方法(612)
  • TortoiseGit 的安装(425)
  • 三种常用的对应list集合的双重遍历(392)
  • 如何用editplus格式化代码(377)
    评论排行
  • 一个女大学生的代码学习之路(一)(185)
  • mybatis的学习认知(一)(7)
  • java WEB开发国际化(二)(4)
  • 使用eclipse开发python(2)
  • maven教程(一)配置环境(2)
  • 数据源的作用(1)
  • 使用Spring注解来注入属性(1)
  • 关于hibernate.cfg.xml头文件DTD的引入(1)
  • Java WEB开发--国际化(一)(0)
  • flexpaper的使用(0)
    推荐文章
      最新评论
    • 一个女大学生的代码学习之路(一)

      静坛使者: @cuiwei1026522829:江西这边 一年学费10000多

    • 一个女大学生的代码学习之路(一)

      wind瑞: 妹子,你已经很不错了!编程语言只是一个工具,需要重点锻炼逻辑思维、分析问题和解决问题的能力;考研的目...

    • 一个女大学生的代码学习之路(一)

      yucheng0918: 妹纸好厉害啊

    • mybatis的学习认知(一)

      suiyecc: 妹子学编程不易啊,推荐一本SQL的好书,拿走不谢啦:D下载:http://bbs.ebookee.n...

    • 一个女大学生的代码学习之路(一)

      跬以海: @cuiwei1026522829:一直没反应过来这个二是什么意思.. 其实说那么多没用, 趁着年轻...

    • 一个女大学生的代码学习之路(一)

      邂逅的遗忘: 加油!

    • 一个女大学生的代码学习之路(一)

      Joyce-Luo: 祝你成功!做程序猿最重要的就是坚持和爱他/她/它,加油吧!

    • 一个女大学生的代码学习之路(一)

      MarioFei: 努力就好,加油

    • 一个女大学生的代码学习之路(一)

      另一花生: @vpingchangxin:恩,sprigmvc 之类的新东西,在六月底之前,我会学会的,之后就是...

    • 一个女大学生的代码学习之路(一)

      另一花生: @u012885731:我是天理

    0 0
    原创粉丝点击