首页 > 代码库 > Maven基础

Maven基础

maven是一个项目管理和构建自动化工具,最直接的讲,就是可以通过配置pom.xml文件关联jar仓库中的jar包,方便项目的管理。
一般情况下,maven项目的结构都如下所示:

技术分享

Maven安装

1、下载maven安装包,例如:apache-maven-3.0.5(官网:http://maven.apache.org/)
2、maven环境变量配置,配置方式跟jdk有些类似。新建环境变量MAVEN_HOME(值为maven的根目录)、然后在PATH环境变量里加入%MAVEN_HOME%\bin;即可。
3、设置setting.xml文件,配置本地仓库。apache-maven-3.0.5\conf下有个setting.xml文件,打开,localRepository的值设置成本地仓库的路径。

技术分享settings.xml

4、在eclipse上安装maven插件(下载插件包,解压后把对应的features和plugins这两个文件夹的内容复制到eclipse相同文件夹里面即可,然后重启eclipse),打开Window->Preferences,可以看到Maven配置项。

技术分享

5、Windows–>Prefrences–>Installations–>Add。installation name选maven的根目录(就是之前本地安装的apache-maven-3.0.5),OK即可。

注:
1、eclipse在安装maven插件后,默认使用Maven的setting.xml文件读取目录为C:\Users\当前登录用户名\.m2,但是他不会自动生成setting.xml文件,需要我们手动加入。
2、eclipse在安装maven插件后,也有一个内嵌的maven,这个内嵌的Maven通常会比较新,但不一定很稳定,而且往往也会和我们在命令行使用的Maven不是同一个版本。这里有会出现两个潜在的问题:首先,较新版本的Maven存在很多不稳定因素,容易造成一些难以理解的问题;其次,除了IDE,我们也经常还会使用命令行的Maven,如果版本不一致,容易造成构建行为的不一致,这是我们所不希望看到的。因此,我们应该在IDE中配置Maven插件时使用与命令行一致的Maven。

创建Maven项目

在eclipse中右键创建项目New->Other,选择Maven项目

技术分享

技术分享

技术分享

这时候,我们有个可选项Create a simple project(skip archetype selection),eclipse默认会为使用者提供一些maven项目骨架,如果勾选了这项,则我们将跳过使用默认骨架,自己定义maven项目的基础结构。

技术分享

groupId:项目或者组织的唯一标志,并且配置时生成路径也是由此生成,如com.alfred.test生成的相对路径为:/com/alfred/test
artifactId:项目的通用名称
version:项目的版本
packaging:打包机制,如pom,jar,maven-plugin,ejb,war,ear,rar,par,一般java项目选址jar,web项目选址war
name:用户描述项目的名称,无关紧要的东西,可选
description:应该是只是写明开发团队的网站,无关紧要,可选

技术分享技术分享

注:在实际项目中,如果需要添加外部依赖jar包,可以在pom.xml中添加依赖节点dependencies->dependency

<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.alfred.jetty</groupId>    <artifactId>jetty-base</artifactId>    <version>1.0.0-SNAPSHOT</version>    <name>Jetty基础</name>    <packaging>war</packaging>    <dependencies>        <dependency>            <groupId>org.eclipse.jetty</groupId>            <artifactId>jetty-server</artifactId>            <version>8.1.19.v20160209</version>        </dependency>        <dependency>            <groupId>org.eclipse.jetty</groupId>            <artifactId>jetty-webapp</artifactId>            <version>8.1.19.v20160209</version>        </dependency>        <dependency>            <groupId>org.eclipse.jetty</groupId>            <artifactId>jetty-servlet</artifactId>            <version>8.1.19.v20160209</version>        </dependency>    </dependencies></project>

Maven的常用命令

1. 创建Maven的普通java项目:
mvn archetype:create -DgroupId=packageName -DartifactId=projectName
2. 创建Maven的Web项目:
mvn archetype:create -DgroupId=packageName -DartifactId=webappName -DarchetypeArtifactId=maven-archetype-webapp
3. 编译源代码:mvn compile
4. 编译测试代码:mvn test-compile
5. 运行测试:mvn test
6. 产生site:mvn site
7. 打包:mvn package
8. 在本地Repository中安装jar:mvn install
9. 清除产生的项目:mvn clean
10. 生成eclipse项目:mvn eclipse:eclipse
11. 生成idea项目:mvn idea:idea
12. 组合使用goal命令,如只打包不测试:mvn -Dtest package
13. 编译测试的内容:mvn test-compile
14. 只打jar包: mvn jar:jar
15. 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile
( -skipping 的灵活运用,当然也可以用于其他组合命令)
16. 清除eclipse的一些系统设置:mvn eclipse:clean

Maven基础