Maven使用

来源:互联网 发布:数据库应急预案 编辑:程序博客网 时间:2024/06/01 08:05

MAVEN3--(一)关于MAVEN

    博客分类: 
  • MAVEN3

1.简介

 

MAVEN是Apache开源组织中的一个跨平台的项目管理工具。

主要功能有项目构建、依赖管理以及项目信息管理。

 

2.项目构建

 

项目构建指的是编译、运行单元测试、生成文档、打包、部署等一系列动作。

MAVEN将项目构建过程抽象成为构建生命周期模型,将构建过程中有序的构建任务抽象为构建生命周期阶段,

并且通过1-N个插件目标来具体实现构建生命周期阶段的操作。

 

3.依赖管理

 

MAVEN通过一个坐标系统准确地定位每一个构件(JAR文件等)。

 

4.项目信息管理

 

MAVEN还能帮助我们管理原本分散在项目各个角落的项目信息,包括项目描述、开发者列表等。

 

5.其余

 

1)中央仓库

Maven提供了一个免费的中央仓库,里面几乎包含了所有的流行开源库,十分方便。

2)衍生工具Nexus

Nexus可用于创建私服,也就是局域网仓库,亦可用于检索第三方库坐标,从而提高效率。

3)约定优于配置

Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些规则,

用户在项目间切换的时候就免去了额外的学习成本。

 

6.参考文档

 

《MAVEN实战》


MAVEN3--(二)安装MAVEN

    博客分类: 
  • MAVEN3
    • 这个可以参考博客maven的安装配置过程,讲解的还是很详细的

1.安装要求

 

JDK5及以上版本

 

2.下载MAVEN安装包

 

下载地址:http://maven.apache.org/download.html

 

安装过程如下:

1)解压ZIP文件

2)配置系统环境变量M2_HOME,指向MAVEN的安装目录

3)系统环境变量PATH中增加%M2_HOME%\bin

4)新开一个CMD窗口,输入MVN -V进行安装验证

 

3.安装目录分析

 

|--bin

    主要包含一些mvn运行脚本

|--boot

    包含类加载器框架

|--conf

    本地全局定制Maven的配置文件setting.xml,不过建议不做修改

|--lib

    包含了Maven运行时需要的JAVA类库

    并且可以在maven-model-builder-3.0.4.jar\org\apache\maven\model中找到超级POM文件

|-LICENSE.TXT

|-NOTICE.TXT

|-README.TXT

 

4.安装ECLIPSE插件(也可以采用离线的方式安装该插件)

1)安装地址:http://m2eclipse.sonatype.org/sites/m2e

2)安装后设置MAVEN的安装路径,而不要使用插件自带的MAVEN

    Window->Preferences->MAVEN->Installations

 

5.MAVEN_OPTS环境变量

由于Maven命令实际上是执行了Java命令,所以可以通过JAVA命令参数的方式来设置MAVEN运行参数。

MAVEN_OPTS环境变量正是用于此用途

MAVEN_OPTS

-Xms128m -Xmx512m

分别设置JVM的最小和最大内存

 

提示:上诉要求当然可以通过修改Maven脚本实现,但是不推荐,因为升级时不方便,

         所以推荐尽可能不去修改任何Maven安装目录下的文件。


MAVEN3--(三)创建MAVEN项目

    博客分类: 
  • MAVEN3
 

1.简介

 

本文将介绍如何使用Eclipse的Maven插件来创建一简单的Maven项目,以及在Eclipse中运行Maven命令。

 

2.步骤

 

1)打开新建项目对话框,选择Maven Project(File->New->Object->Maven->Maven Project)

 

 

2)不好选择Simple Project,从而可以选择项目的archetype

 

 

3)选择名为quickstart的Archetype,点击Next(这里可以参考用eclipse创建maven项目)

 

Archetype:项目骨架,项目的目录和文件结构

 

 

4)输入Group Id,Artifact Id信息,Version默认为0.0.1-SNAPSHOT,Package会根据Group Id和Artifact Id自动生成

 

Group Id:项目所属的项目组

 

Artifact Id:项目在项目组中的ID

 

Version:项目的版本号,后缀SNASHOT为快照的意思,表示版本不稳定

 

 

5)由于通过quickstart来创建项目时会默认生成一个App.java和一个AppTest.java文件,我们可以直接运行Maven命令

 

选中项目->Run As->Maven Test

 

 

运行结果:

Java代码  收藏代码
  1. [INFO] Scanning for projects...  
  2. [INFO]                                                                           
  3. [INFO] ------------------------------------------------------------------------  
  4. [INFO] Building firstmvn 0.0.1-SNAPSHOT  
  5. [INFO] ------------------------------------------------------------------------  
  6. [INFO]   
  7. [INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ firstmvn ---  
  8. [debug] execute contextualize  
  9. [INFO] Using 'UTF-8' encoding to copy filtered resources.  
  10. [INFO] <span style="color: #ff0000;">skip non existing resourceDirectory F:\workspace\firstmvn\src\main\resources</span>  
  11. [INFO]   
  12. [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ firstmvn ---  
  13. [INFO] <span style="color: #ff0000;">Nothing to compile - all classes are up to date</span>  
  14. [INFO]   
  15. [INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ firstmvn ---  
  16. [debug] execute contextualize  
  17. [INFO] Using 'UTF-8' encoding to copy filtered resources.  
  18. [INFO]<span style="color: #ff0000;"> skip non existing resourceDirectory F:\workspace\firstmvn\src\test\resources</span>  
  19. [INFO]   
  20. [INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ firstmvn ---  
  21. [INFO]<span style="color: #ff0000;"> Nothing to compile - all classes are up to date</span>  
  22. [INFO]   
  23. [INFO] --- maven-surefire-plugin:2.10:test (default-test) @ firstmvn ---  
  24. [INFO] Surefire report directory: F:\workspace\firstmvn\target\surefire-reports  
  25.   
  26. -------------------------------------------------------  
  27.  T E S T S  
  28. -------------------------------------------------------  
  29. Running com.siyuan.firstmvn.AppTest  
  30. Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.012 sec  
  31.   
  32. Results :  
  33.   
  34. Tests run: 1, Failures: 0, Errors: 0, Skipped: 0  
  35.   
  36. [INFO] ------------------------------------------------------------------------  
  37. [INFO] BUILD SUCCESS  
  38. [INFO] ------------------------------------------------------------------------  
  39. [INFO] Total time: 1.762s  
  40. [INFO] Finished at: Tue Sep 18 22:54:57 CST 2012  
  41. [INFO] Final Memory: 4M/72M  
  42. [INFO] ------------------------------------------------------------------------  

 

注:第一次运行Maven可能会有更多额外的Maven插件下载信息
 

3.项目结构介绍

 

 

 

    

firstmvn

|--src

    |--main

        |--java

        |--resources

    |--test

        |--java

        |--resources

|--target

|-pom.xml

 

SRC:源文件目录

TARGET:编译目录

pom.xml: Project Object Model项目对象模型,定义了项目的基本信息,用于描述项目如何构建,声明依赖等等。

 

Xml代码  收藏代码
  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.siyuan</groupId>  
  6.   <artifactId>firstmvn</artifactId>  
  7.   <version>0.0.1-SNAPSHOT</version>  
  8.   <packaging>jar</packaging>  
  9.   
  10.   <name>firstmvn</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>  

 

重要的元素:

 

groupId,artifactId,version,packaging

这四个元素组成了Maven的坐标,它相当为项目在Maven世界中的ID。

其中packaging默认为jar,可以为jar,pom,war等。

 

dependencies

项目依赖,由1到N个dependency组成,每个dependency包含了一个坐标和依赖范围scope

其中scope默认为compile,表示该依赖对主代码和测试代码都有效,

test则表示该依赖只对测试有效,即测试代码中可以使用Junit-3.8.1.jar中的内容,主代码不能使用,

其余scope将在之后介绍。

 

  • 查看图片附件
分享到:  
ONGL介绍 | MAVEN3--(二)安装MAVEN
  • 2012-09-18 23:33
  • 浏览 2572
  • 评论(1)
  • 分类:开源软件
  • 相关推荐
评论
1 楼 2047699523 2015-05-19  

可以参考最新的文档:
如何在eclipse jee中检出项目并转换为Maven project,最后转换为Dynamic web project,地址:http://www.zuidaima.com/blog/1618180875144192.htm
如何在eclipse jee中创建Maven project并且转换为Dynamic web project
地址:http://www.zuidaima.com/blog/1618162161323008.htm

0 0
原创粉丝点击