您的位置:首页 > 其它

Maven安装、配置、使用

2012-09-20 14:41 531 查看
maven的安装配置实用说明

1.在Eclipse中创建maven项目,在视图中可以看到创建的项目。



2.项目文件说明

a、pom.xml项目配置文件



groupId定义了项目属于哪个组,一般和公司或者组织关联

artifactId定义了当前Maven项目在组中唯一的ID。

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

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

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

b、App类

package maventest;

/**

* Hello world!

*

*/

public class App

{

public static void main( String[] args )

{

System.out.println( "Hello World!" );

}

}

简单main入口函数。

c、AppTest类

package maventest;

import junit.framework.Test;

import junit.framework.TestCase;

import junit.framework.TestSuite;

/**

* Unit test for simple App.

*/

public class AppTest

extends TestCase

{

/**

* Create the test case

*

* @param testName name of the test case

*/

public AppTest( String testName )

{

super( testName );

}

/**

* @return the suite of tests being tested

*/

public static Test suite()

{

return new TestSuite( AppTest.class );

}

/**

* Rigourous Test :-)

*/

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文件,选择相应命令来操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: