http://ttitfly.iteye.com/blog/152557

Maven2主要配置文件:pom.xml和settings.xml。 
POM是Maven的核心对象模型,对于项目,一般只需要pom.xml就行了。 
settings.xml配置在Maven2中存在两种级别: 

用户级,针对操作系统登录用户而言。一般在$home/.m2/,对于windows用户,就是目录:C:\Documents and Settings\用户名\.m2\settings.xml。 
全局级:一般在%M2_HOME%/conf/settings.xml,M2_HOME是Maven2的根目录环境变量名。 

Maven2提供预定义的目录模板 
如图: 
 

具体应用如下: 
1.下载maven2 
http://maven.apache.org/download.html 

2.设置二环境变量:解压,如解压在D:\mvntest,然后设置系统环境变量M2_HOME=D:\apache-maven-2.0.8 ,path变量里添加D:\apache-maven-2.0.8\bin,方便Maven在任何目录下运行。 

3.mvn -h可以查看帮助 
如执行mvn --version可以查看版本信息

  1. mvn --version

可以显示类似这样的信息:

  1. Maven version: 2.0.8
  2. Java version: 1.6.0
  3. OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"

4.创建一个新项目: 
Maven2的运行命令是mvn,常用命令为:

  1. 创建Maven项目:mvn archetype:create
  2. 编译源代码:mvn compile
  3. 编译测试代码:mvn test-compile
  4. 运行测试:mvn test
  5. 产生site:mvn site
  6. 打包:mvn package
  7. 在本地Repository中安装jar:mvn install
  8. 清除产生的项目:mvn clean

如:创建一个新项目:

  1. mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app

说明:artifactId是项目名称,groupId则是项目的包结构。 
如果是第一次运行,则需要花费一段时间,这是因为maven会下载最新的plugin jars和一些其它所需要的文件到你本地的repository. 
当完成以后,

  1. cd my-app

可以看到标准的maven结构:

  1. my-app
  2. |-- pom.xml
  3. `-- src
  4. |-- main
  5. |   `-- java
  6. |       `-- com
  7. |           `-- mycompany
  8. |               `-- app
  9. |                   `-- App.java
  10. `-- test
  11. `-- java
  12. `-- com
  13. `-- mycompany
  14. `-- app
  15. `-- AppTest.java

src/main/java 目录包含项目的code资源,  src/test/java 目录包含测试code, pom.xml 是项目的 Project Object Model( POM ) 

Maven2还会创建缺省的pom.xml。在Maven2里,pom.xml文件是一个项目的核心配置. 

该项目生成的默认的pom.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/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.mycompany.app</groupId>
  5. <artifactId>my-app</artifactId>
  6. <packaging>jar</packaging>
  7. <version>1.0-SNAPSHOT</version>
  8. <name>my-app</name>
  9. <url>http://maven.apache.org</url>
  10. <dependencies>
  11. <dependency>
  12. <groupId>junit</groupId>
  13. <artifactId>junit</artifactId>
  14. <version>3.8.1</version>
  15. <scope>test</scope>
  16. </dependency>
  17. </dependencies>
  18. </project>

如果想把整个项目打包,则只需要执行命令:

  1. mvn package

打包的jar文件的名称是根据pom.xml里<artifactId>的值和 <version>的值连接起来组成的。中间用-连接,如本项目的jar包及位置为D:\mvntest\my-app\target\my-app-1.0-SNAPSHOT.jar 

也可以测试一下该jar包,执行命令:

  1. java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App

如果输出:

  1. Hello World!

则表示正确。 

Maven2也考虑到:不同类型的项目需要拥有不同的目录结构。如创建web项目,可以使用命令:

  1. mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp

在Maven2中有了明确的生命周期概念,而且都提供与之对应的命令,使得项目构建更加清晰明了。主要的生命周期阶段: 

validate,验证工程是否正确,所有需要的资源是否可用。 
compile,编译项目的源代码。 
test-compile,编译项目测试代码。 
test,使用已编译的测试代码,测试已编译的源代码。 
package,已发布的格式,如jar,将已编译的源代码打包。 
integration-test,在集成测试可以运行的环境中处理和发布包。 
verify,运行任何检查,验证包是否有效且达到质量标准。 
install,把包安装在本地的repository中,可以被其他工程作为依赖来使用 
deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。 
generate-sources,产生应用需要的任何额外的源代码,如xdoclet。 
如果要执行项目编译,那么直接输入:mvn compile即可,对于其他的阶段可以类推。阶段之间是存在依赖关系(dependency)的,如test依赖test-compile。在执行mvn test时,会先运行mvn test-compile,然后才是mvn test

因为maven2 是有生命周期这一概念的,所以如果你执行package,相应的以前步骤,如compile,test等都会自动执行。 
刚开始执行会比较慢,需要从maven2远程库中下载所有的文件到本地。如果你的本地没有相应的依赖包,则每次maven都会去远程下载,所以配置一个镜像库就比较重要了。

maven2介绍(转)的更多相关文章

  1. maven2应用之jar插件使用介绍

    [转载声明] 转载时必须标注:本文来源于铁木箱子的博客http://www.mzone.cc [本文地址] 本文永久地址是:http://www.mzone.cc/article/236.html 有 ...

  2. Maven详细介绍

    Maven 目录 1 什么是Maven? 2 Maven 的好处 3 获取和安装 3.1 获取 3.2 安装 3.2.1 环境变量的配置 4 设置本地仓库 5 创建简单的Maven实例 5.1 使用骨 ...

  3. Maven_pom.xml介绍

    Maven的pom.xml介绍 6.1     简介 pom.xml文件是Maven进行工作的主要配置文件.在这个文件中我们可以配置Maven项目的groupId.artifactId和version ...

  4. Maven 使用介绍

    1,创建Project 先去官方网站下载一个最新版本http://maven.apache.org/download.cgi. 下载后解压,使用之前最好先将maven的bin目录设置到path环境变量 ...

  5. jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门

    一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...

  6. WebService服务调用方法介绍

    1 背景概述 由于在项目中需要多次调用webservice服务,本文主要总结了一下java调用WebService常见的6种方式,即:四种框架的五种调用方法以及使用AEAI ESB进行调用的方法. 2 ...

  7. Maven 介绍

    1.maven的用途maven是一个项目构建和管理的工具,提供了帮助管理 构建.文档.报告.依赖.scms.发布.分发的方法.可以方便的编译代码.进行依赖管理.管理二进制库等等.maven的好处在于可 ...

  8. Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置

    由浅入深,主要介绍maven的用途.核心概念(Pom.Repositories.Artifact.Build Lifecycle.Goal).用法(Archetype意义及创建各种项目).maven常 ...

  9. okhttp 基本介绍

    资料汇总 官网:http://square.github.io/okhttp/ 文档:https://github.com/square/okhttp/wiki GitHub:https://gith ...

  10. Github开源Java项目(Disconf)上传到Maven Central Repository方法详细介绍

    最近我做了一个开源项目 Disconf:Distributed Configuration Management Platform(分布式配置管理平台) ,简单来说,就是为所有业务平台系统管理配置文件 ...

随机推荐

  1. 在英特尔 CPU 上微调 Stable Diffusion 模型

    扩散模型能够根据文本提示生成逼真的图像,这种能力促进了生成式人工智能的普及.人们已经开始把这些模型用在包括数据合成及内容创建在内的多个应用领域. Hugging Face Hub 包含超过 5 千个预 ...

  2. Blazor前后端框架Known-V1.2.5

    V1.2.5 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行. Gitee: https://gitee.com/known/Known Gith ...

  3. Linux 概念:存储

    块存储 (略) 文件存储 基于文件系统的本地文件存储: 基于网络的共享文件存储:NFS.Samba.Windows文件共享: 基于网络的分布式文件存储:HDFS... 对象存储 一种Key(对象ID) ...

  4. 用Claude-2-100K复刻了胡锡进老师的写作风格

    大家好,我是老章 最近玩心大发,用Claude-2-100K复刻了胡锡进老师的写作风格,然后用这个风格点评世间万物. 蛮有意思的,直接看效果吧: 怎么实现的呢?老章不喜欢废话,极简介绍一下步骤. 第一 ...

  5. Linux-用户管理命令(必须是超级管理员-root)

    useradd   [名字] 创建一个新用户  (home  下创建) useradd -d [路径][名字]   路径中的名字是文件  , 登录用的后面的名字 passwd  [用户名] 设置密码, ...

  6. Powe AutoMate:列表操作

    大纲 记录对列表的操作 创建列表 向列表中添加元素 添加多个 合并列表 运行结果 反转列表 反转前 反转后 删除列表中的重复项 结果: 减去列表 结果:

  7. Java中,在不知道Key的情况下,用多种方法完成一个Map类型的遍历

    方法如下: 1.可以用迭代器来遍历, // 获取迭代器 Iterator<String> it = map.iterator().iterator(); // 输出集合中的所有元素 whi ...

  8. Docker版SS安装

    灰常简单 首先安装docker 使用官方安装脚本自动安装 64位的centos7和8安装命令如下: curl -fsSL https://get.docker.com | bash -s docker ...

  9. Docker下elasticsearch8部署、扩容、基本操作实战(含kibana)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇记录了用docker搭建ElasticS ...

  10. Solution -「LOCAL 28731」「重庆市 2021 中学友谊赛」Rainyrabbit 爱求和

    Description Link. \(\operatorname{Rainyrabbit}\) 是一个数学极好的萌妹子,近期他发现了一个可爱的函数: \[f(n,m,k)=\sum_{d=1}^n ...