maven的安装配置

 

Maven安装、配置、使用

 

LifeBa文章如未注明转载均为原创.
转载请注明: 转载自Life吧 本文永久链接地址:http://www.lifeba.org/arch/maven_install_configuration.html

本文最后更新2012-11-26

一、Maven安装与配置

1、下载安装maven

去 Maven下载主页 下载 Maven 3.0.4

apache-maven-3.0.4-bin.tar.gz 解压到 d:/apache-maven-3.0.4,并在环境变量加入M2_HOME=d:/apache-maven-3.0.4,PATH中加入bin路径:%M2_HOME%\bin。

确认安装:cmd中输入:mvn -version ,看到版本信息说明配置成功。

Apache Maven 3.0.4 (r1232337; 2012-01-17 16:44:56+0800)
Maven home: d:\apache-maven-3.0.4
Java version: 1.6.0_21, vendor: Sun Microsystems Inc.
Java home: C:\Program Files\Java\jdk1.6.0_21\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"

更新maven:下载新的版本,然后将环境变量的M2_HOME修改为新版的路径即可。

2、配置maven

a、执行 mvn help:system

该命令会打印出所有的Java系统属性和环境变量,这些信息对我们日常的编程工作很有帮助。运行这条命令的目的是为了让Maven执行一个真正的任务。我们可以从命令行输出看到Maven会下载maven-help-plugin,包括pom文件和jar文件。这些文件都被下载到了Maven本地仓库中。我的下载的路径是在:C:\Users\Administrator\.m2下。

b、安装 m2eclipse 插件

这里使用的是myeclipse9.1版本,打开 myeclipse configuration center,添加一个site:

name:m2eclipse
url:http://m2eclipse.sonatype.org/sites/m2e

展开m2eclipse节点,右击Maven Integration for Eclipse(Required)项目,选择 add to profile 添加到myeclipse中。

最后点击右下角的 Apply change 就可以安装了。

另外你也可以按照m2eclipse还提供了一组额外组件,这些组件的安装地址为http://m2eclipse.sonatype.org/sites/m2e-extras 和前面的安装方法类似。

安装成功后,File→New→Other,找到MyEclipse下的Maven一项,说明安装成功。

c、m2eclipse相关设置

配置环境变量:MAVEN_OPTS的值为:-Xms128m -Xmx512m,避免得到java.lang.OutOfMemeoryError

配置用户范围settings.xml(~/.m2/settings.xml),$M2_HOME/conf/settings.xml这个是全局用户的配置,修改的话升级不方便。

IDE指定自定义的Maven
在m2eclipse环境中,点击菜单栏中的Windows,然后选择Preferences,在弹出的对话框中,展开左边的Maven项,选择Installation子项,在右边的面板中,我们能够看到有一个默认的Embedded Maven安装被选中了,点击Add…然后选择我们的Maven安装目录M2_HOME,添加完毕之后选择这一个外部的Maven

二、Maven简单使用

1、创建Maven项目

Maven项目的约定:在项目的根目录中放置pom.xml,在src/main/java目录中放置项目的主代码,在src/test/java中放置项目的测试代码。你可以手动创建这些目录和文件,也可以直接在命令行中使用Archetype生成项目骨架或者在eclipse中生成。

a、命令行中使用Archetype生成项目骨架

创建D:\training\maven_test,然后在该目录下执行:

mvn archetype:generate

第一次执行,会自动下载相关的jar包到仓储中。我们会看到一段长长的输出,有很多可用的archetype供我们选择,包括著名的Appfuse项目的archetype,JPA项目的archetype等等。每一个archetype前面都会对应有一个编号,同时命令行会提示一个默认的编号,其对应的archetype为maven-archetype-quickstart,我们直接回车以选择该archetype,紧接着Maven会提示我们输入要创建项目的groupId、artifactId、 version、以及包名package,

生成的文件结构

maventest
│  pom.xml
└─src
├─main
│  └─java
│      └─maventest
│              App.java
└─test
└─java
└─maventest
AppTest.java

b、Myeclipse中创建项目

按照下面的引导界面,同样可以创建maventest2项目

2、导入maven项目到eclipse中

在File菜单下的Import,选择Existing Maven Projects

选择maven项目路径,点击确定即可

现在在Eclipse视图中可以看到创建的2个项目。

3、项目文件说明

a、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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>maventest</groupId>
<artifactId>maventest</artifactId>
<version>1.0-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定义了当前Maven项目在组中唯一的ID。

version指定了maventest项目当前的版本——1.0-SNAPSHOT。

name元素对当前项目的备注信息

dependencies 添加依赖的jar文件,本地仓储中没的话会自动下载该jar。有其他的jar依赖,可以添加多个dependency节点。scope为依赖范围,若依赖范围为test则表示该依赖只对测试有效,换句话说,测试代码中的import JUnit代码是没有问题的,但是如果我们在主代码中用import JUnit代码,就会造成编译错误。如果不声明依赖范围,那么默认值就是compile,表示该依赖对主代码和测试代码都有效

b、App类

public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}

简单main入口函数。

c、AppTest类

public class AppTest
extends TestCase
{
public AppTest( String testName )
{
super( testName );
}

public static Test suite()
{
return new TestSuite( AppTest.class );
}

public void testApp()
{
assertTrue( true );
}
}

用来单元测试的类。

4、maven编译项目

mvn clean compile

第一次执行会下载相应的一些jar包。clean告诉Maven清理输出目录target/,compile告诉Maven编译项目主代码,从输出中我们看到Maven首先执行了clean:clean任务,删除target/目录,默认情况下Maven构建的所有输出都在target/目录中;接着执行resources:resources任务(未定义项目资源,暂且略过);最后执行compiler:compile任务

[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ maventest ---
[INFO] Deleting D:\training\maven_test\maventest\target
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ maventest
---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\training\maven_test\mavent
est\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ maventest ---

[INFO] Compiling 1 source file to D:\training\maven_test\maventest\targe
t\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

mvn clean test

编译test代码并测试。

[INFO] Compiling 1 source file to D:\training\maven_test\maventest\targe
t\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ maventest ---
[INFO] Surefire report directory: D:\training\maven_test\maventest\targe
t\surefire-reports

-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running maventest.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] BUILD SUCCESS

上面2个编译后生成相应的class文件。

├─classes
│  └─maventest
│          App.class

├─surefire
├─surefire-reports
│      maventest.AppTest.txt
│      TEST-maventest.AppTest.xml

└─test-classes
└─maventest
AppTest.class

如果编译失败的话,确认jdk版本。Maven的核心插件之一compiler插件默认只支持编译Java 1.3,因此我们需要配置该插件使其支持Java 5。

pom.xml中加入编译配置节点

<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
...
</project>

在m2eclipse环境中,右键pom.xml文件,选择 run as下面的相应命令。

默认带有mvn test,但我们想执行mvn clean test,很简单,选择Maven buid… 以自定义Maven运行命令,在弹出对话框中的Goals一项中输入我们想要执行的命令,如clean test,设置一下Name,点击Run即可。

5、maven打包发布

mvn clean package

根据pom.xml中配置,在target目下,编译生成 maventest-1.0-SNAPSHOT.jar 包。可以复制这个jar文件到其他项目的Classpath中使用。

[INFO] Building jar: D:\training\maven_test\maventest\target\maventest-1
.0-SNAPSHOT.jar
[INFO] BUILD SUCCESS

mvn clean install

为了让其他的maven项目直接引用这个jar呢?我们还需要一个安装的步骤.通过install命令就可以成功安装该jar文件。

[INFO] Installing D:\training\maven_test\maventest\pom.xml to C:\Users\A
dministrator\.m2\repository\maventest\maventest\1.0-SNAPSHOT\maventest-1.0-SNAPS
HOT.pom
[INFO] BUILD SUCCESS

同样也可以在m2eclipse中,右键pom.xml文件,选择相应命令来操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章