Maven
来源:互联网 发布:jquery.js文件下载 编辑:程序博客网 时间:2024/06/05 23:39
-- Start
Maven 简介
Maven 是 Apache 的一个 Java 项目管理工具。Maven 可以非常方便的帮助我们构建 Java 项目,生成报告,文档等。
下载和安装 Maven
1. 在 Google 中搜索 Maven Download, 下载最新版的 Maven zip包, 解压在一个目录下,如:D:\Applications\Maven\apache-maven-3.2.2
2. 创建或修改下面的环境变量,注意不要照抄我的路径。
M2_HOME=D:\Applications\Maven\apache-maven-3.2.2M2=%M2_HOME%\binJAVA_HOME=D:\Applications\Java\jdk1.8.0_11Path=%M2%;%JAVA_HOME%\bin
3. 打开命令行提示符,运行下面的命令验证 Maven 安装是否成功。
C:\Users\Shangbo>mvn --versionApache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T21:51:42+08:00)Maven home: D:\Applications\Maven\apache-maven-3.2.2Java version: 1.8.0_11, vendor: Oracle CorporationJava home: D:\Applications\Java\jdk1.8.0_11\jreDefault locale: zh_CN, platform encoding: GBKOS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"C:\Users\Shangbo>
Maven Eclipse 插件
创建一个Maven项目
在 Eclipse 中选择 File-->New-->Project...,在弹出的对话框中选择 Maven Project, 然后 Next, Next, Next, 在下面的对话框中输入Goup Id, Artifact Id, 然后 Finish。如果你是第一次创建 Maven 项目,可能需要一些时间,因为 Maven 需要下载一些必须的 jar 包到本地的 Maven 库中。
创建 Maven 项目后,你的 Maven 项目会有如下的目录结构。main 分支下存放源代码,test 分支下存放测试代码,打包的时候测试代码不会被打入包内。从而使我们的包尽可能的小。
MavenTest|-- pom.xml`-- src |-- main | `-- java | `-- com | `-- shangbo | `-- app | `-- MavenTest | `-- App.java `-- test `-- java `-- com `-- shangbo `-- app `-- MavenTest `-- AppTest.java
POM
其中 pom.xml 是 Maven 项目核心, POM 是项目对象模型的缩写(Project Object Model)。<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.shangbo.app</groupId> <artifactId>MavenTest</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>MavenTest</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies></project>
其中 <groupId> 指的是开发此软件的公司的唯一标识。
<artifactId> 指的是此程序要打包成 JAR 或 WAR 的名字。
<packaging> 指的是此程序的打包类型。
<version> 指的是 JAR 或 WAR 的版本号,其中 SNAPSHOT 指的是此程序属于开发状态。
<name> 指的是项目的名字,用来生成文档。
<url> 指的是项目地址,用来生成文档。
当然 pom.xml 中还有许多其他的元素,你可以在 Google 中搜索 POM Reference 来查看它们的意义。
编译源代码
1. 在 Eclipse 中,在 pom.xml 文件上点击右键,在弹出的菜单中选择 Run AS --> Maven build,在弹出的对话框的Goals中输入 compile 来编译项目。
2. 你也可以在 pom.xml 所在的目录中执行如下的 Maven 命令来编译项目。
mvn compile
初次编译时可能需要一点时间,因为 Maven 需要下载项目依赖的 Jar 包到本地 Maven 库。编译好的 class 文件放到 target 目录下。
编译,运行测试用例
1. 在 Eclipse 中,在 pom.xml 文件上点击右键,在弹出的菜单中选择 Run AS --> Maven test 来编译并运行测试用例。
2. 你也可以在 pom.xml 所在的目录中执行如下的 Maven 命令来编译并运行测试用例。
mvn test3. 如果你只想编译测试用例,那么你可以在 pom.xml 所在的目录中执行如下的命令。
mvn compile
打包
1. 在 Eclipse 中,在 pom.xml 文件上点击右键,在弹出的菜单中选择 Run AS --> Maven build,在弹出的对话框的Goals中输入 package 来打包项目。
2. 你也可以在 pom.xml 所在的目录中执行如下的 Maven 命令来编译项目。
mvn package
mvn install
添加依赖
你可能已经注意到在 pom.xml 中有如下片段。这是因为我们的测试用例要用到 Junit 的 jar 包,当我们编译项目的时候,Maven 会自动帮我们从中央 Maven 库中下载相应版本的 junit jar 包的本地 Maven 库中,从而省去我们自己下载 jar 包的繁琐。在 Eclipse 中 Maven Dependencies 下你可以看到该 jar 包。
我们已经介绍了 <groupId>, <artifactId>, <version> 的意义。那 <scope> 是什么意思呢?请看下表。
compile 默认值,表示编译项目需要此jarprovided 表示此jar由 JKD 或 Web 容器等提供runtime 表示编译时不需要此jar,运行时需要test 表示运行测试用例需要此jarsystem 表示此jar永远可用,无需到 Maven 库中下载
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies>
还有个问题,我们如何知道 junit 的 <groupId>, <artifactId> 和 <version> 呢?你可以在下面的这个网站去查找。
http://mirrors.ibiblio.org/maven2/
Maven 配置文件 settings.xml
如果 Maven 的中央库中没有我们需要的jar 怎么办?此外,好多大公司都有自己的 Maven 库,如何让 Maven 从我们自己的库中下载 jar 呢?如果我是通过代理访问网络呢?这些你都可以在Maven 配置文件 settings.xml 中进行设置。我们可以在如下两个目录中找到 setting.xml 文件。
${user.home}/.m2/settings.xml${maven.home}/conf/settings.xml
下面是我的目录
C:\Users\Shangbo\.m2\repository\D:\Applications\Maven\apache-maven-3.2.2\conf\
那么它们有什么区别呢,一个是从用户层面配置,一个是从全局层面配置。
-- 更多参见:项目管理精萃
-- 声 明:转载请注明出处
-- Last Updated on 2014-08-16
-- Written by ShangBo on 2014-08-15
-- End
- Maven
- Maven
- Maven
- maven
- Maven
- Maven
- maven
- maven
- maven
- maven
- Maven
- maven .
- Maven
- maven
- maven
- maven
- MAVEN
- Maven
- 结队开发之多storyboard
- hdu 3879 hdu 3917 构造最大权闭合图 俩经典题
- poj 1236
- [C++] vector数组越届及关于引用的
- 分析最常见最有效的公共传播方方式
- Maven
- HDU 1498 50 years, 50 colors(最小点覆盖,坑题)
- 线性检索:顺序检索
- 智慧农业物联网方案,zigbee无线CDMA,GPRS数传大棚灌溉温湿度
- python函数返回值
- Elixir 入门
- 字符串相似度--动态规划
- leetcode Populating Next Right Pointers in Each Node &&Populating Next Right Pointers in Each Node||
- POJ 1469 COURSES(二分图最大匹配)