maven使用笔记

在开发过程中会用到maven,所以对maven进行了简单的学习。

准备工作

  • Jdk1.5以上的java开发环境
  • Maven
第一步:配置maven环境

将下载的文件加压,然后设置maven环境,对于有java开发经验的人,应该是很easy的。如的maven的环境是: G:\maven\apache-maven-3.3.1
我的电脑----属性----高级----环境变量----新建

变量名:M2_HOME
变量值:G:\maven\apache-maven-3.3.1

找到path环境变量
在环境的变量的尾部加上:;%M2_HOME%\bin;,注意前面的分号哦,当然你也可以直接在path路径的尾部直接加上 G:\maven\apache-maven-3.3.1\bin,只是上面的方式更优雅一点。

打开命令提示符(开始----运行----cmd),检查maven环境是否配置成功。运行下面命令

mvn -v

Apache Maven 3.3.1 (cab6659f9874fa96462afef40fcf6bc033d58c1c; 2015-03-14T04:10:27+08:00)
Maven home: G:\maven\apache-maven-3.3.1
Java version: 1.7.0_09, vendor: Oracle Corporation
Java home: C:\Java\jdk1.7.0_09\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 8", version: "6.2", arch: "x86", family: "windows"
第二步:修改仓库位置

接下来需要修改下仓库地址,仓库用于存放我们项目所以来的所有的jar
我的仓库路径:G:\maven\repo,这个路径你可以随便创建。
打开maven的安装目录,进入到G:\maven\apache-maven-3.3.1\conf,编辑setting.xml文件,设置我们创建的仓库路径

<localRepository>G:/maven/repo</localRepository>

设置完成之后,可以用一个命令验证一下。在命令提示符中执行:

mvn help:system

这个命令会打印出所有的java系统属性和环境变量。如果运行没有错误,在我们创建的那个仓库目录中会多出很多文件、这些文件就是从maven的中央仓库下载到本地仓库的。

第三步:创建一个maven项目

在命令提示符中执行:

mvn archetype:generate -DgroupId=com.app -DartifactId=first-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

对上面命令解释一下:

-DgroupId         组织标识(包名)
-DartifactId        项目名称
-DarchetypeArtifactId    指定ArchetypeId,maven-archetype-quickstart,创建一个Java Project;maven-archetype-webapp,创建一个Web Project
-DinteractiveMode      是否使用交互模式

ps:因为是第一次构建项目,所有依赖的jar包都要从maven的中央仓库去下载,所以需要等待一段时间。

标准maven项目的结构

└─src
    ├─main
    │  └─java
    │      └─com
    │          └─app
    └─test
        └─java
            └─com
                └─app

src/main/java  存放项目的源代码
src/test/java  存放测试源代码
如果要存放一些配置文件,可以再建立一个目录src/main/resource存放,如存放log4j.properties等

顺便了解下pom.xml文件。
pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。
pom.xml文件是可以继承的,大型项目中,子模块的pom.xml一般都会继承于父模块的pom.xml

刚创建的项目中pom.xml内容如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.app</groupId>
  <artifactId>first-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>first-app</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

节点元素说明

<project>      pom文件的顶级节点
<modelVersion>   object model版本,对Maven2和Maven3来说,只能是4.0.0 
<groupId>      项目创建组织的标识符,一般是域名的倒写
<artifactId>    定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
<packaging>      打包的方式,有jar、war、ear等
<version>       当前项目的版本,SNAPSHOT,表示是快照版本,在开发中
<name>        项目的名称
<url>        项目的地址
<dependencies>   构建项目依赖的jar
<description>    项目的描述

Maven参数

-D 传入属性参数
-P 使用pom中指定的配置
-e 显示maven运行出错的信息
-o 离线执行命令,即不去远程仓库更新包
-X 显示maven允许的debug信息
-U 强制去远程参考更新snapshot包
例如 mvn install -Dmaven.test.skip=true -Poracle
其他参数可以通过mvn help 获取

Maven常用命令

mvn clean # 清理项目生产的临时文件,一般是模块下的target目录
mvn compile # 编译项目主代码
mvn test-compile # 编译测试代码
mvn package # 项目打包工具,会在模块下的target目录生成jar或war等文件
mvn test # 测试命令,或测试src/test/java下junit的测试用例
mvn site-deploy # 生产站点目录并打包
mvn install # 模块安装命令,将打包的jar/war文件复制到你的本地仓库中,供其他模块使用
mvn clean package # 先清除再打包
mvn jar:jar # 打成jar包
-Dmaven.test.skip=true # 跳过测试(同时会跳过test compile)
mvn deploy # 发布命令,将打包的文件发布到远程,提供其他人员进行下载依赖
mvn eclipse:eclipse # 生成eclipse配置文件,导入到eclipse开放
mvn archetype:generate # 说明如下: 模块创建命令, 执行命令后,会提示选择创建项目的模版,这里选18(maven-archetype-quickstart)

  • 后面会提示你输入groupId(包存放的路径):
    eg:com.test
  • 提示输入artifactId(模块名称):
    eg:test-core
  • 提示输入version(版本):
    1.0.0-SNAPSHOT
  • 提示输入package(指项目中基本的包路径):
    eg:com.test
  • 提示确认,回车即可

mvn help:help # 查看帮助信息

创建web项目的命令如下:

mvn archetype:generate -DgroupId=com.app -DartifactId=first-web-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractivMode=false

posted @ 2015-12-16 08:37  haifeng0730  阅读(335)  评论(0编辑  收藏  举报

欲起步的人生贵在励志 已起步的人生贵在坚持