在Eclipse中使用Maven

提到Eclipse中使用Maven,都会想到m2eclipse这个插件。其实在Eclipse下使用Maven不用插件也能完成,我们只需要使用bin/mvn下面的mvn即可。 3分钟MavenMaven官方提供了Getting Started in 5 MinutesGetting Started in 30 Minutes两种教程,我这里再简化一下,记录一下常用命令。
01 #建立一个空项目,包含一个HelloWorld,可以通过
02 #-DarchetypeGroupId=<archetype-groupId> -DarchetypeArtifactId=<archetype-artifactId>
03 #命令创建更多类型项目
04 mvn archetype:create -DgroupId=com.dddspace.java -DartifactId=helloworld
05  
06 #编译打包到jar或者war,根据pom中定义
07 maven package
08  
09 #jUnit跑跑
10 mvn test
11  
12 #神奇的命令,帮助创建Eclipse项目,配置path,默认使用M2_REPO这个变量作为目录
13 mvn eclipse:eclipse

大约跑完花费3分钟~嗯,有这几个命令,Maven简单操作就OK了,更多的话,去Maven文档溜溜吧。

PS:为了防止Maven编码错误,建议在bin/mvn里面加入一句话set MAVEN_OPTS=-Dfile.encoding=UTF-8 这样强制Maven使用UTF-8进行编码。

配置Eclipse环境

加入M2_REPO

进入Eclipse->preferences->java->build path->classpath variables,添加M2_REPO这个变量,指向C:/Documents and Settings/userName/.m2/repository,这个路径是默认的Maven仓库,如果你想搬到其他地方,需要修改 maven\conf\setting.xml里面的localRepository。

配置String Substitution

通过配置String Subsitution我们就可以使用Eclipse的lanuch来启动Maven,而不是Eclipse插件启动。首先我们要告诉Eclipse Maven在哪里。配置Eclipse->preferences->Run/Debug->String Subsitution,加入mvn = D:/dotj_dev/tools/apache-maven-2.2.1/bin/mvn.bat。

建立Launch文件

Launch其实是Eclipse的Launcher框架的配置文件,可以定义Application的启动方式。新建一个mvn-war.launch如下:

1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <launchConfiguration type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
3 <stringAttribute key="bad_container_name" value="\helloworld\mvn-war.launch"/>
4 <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${mvn}"/>
5 <stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="clean compile war:war -U"/>
6 <stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY"value="${workspace_loc:/helloworld}"/>
7 </launchConfiguration>

Update(2011/03/21):后来测试发现bad_container_name没有也可以正常运行;${workspace_loc:/helloworld}修改为${project_loc}更为方便。

这个.launch文件内容其实是XML格式的,里面定义了几个属性,用来告诉Eclipse执行什么命令,重要的属性是ATTR_LOCATION和ATTR_TOOL_ARGUMENTS,我们分别赋值为${mvn}和Maven参数,就可以正确执行了。

类似的,我们可以建立mvn eclipse:eclipse的Launch文件,用来生成Eclipse类型的项目。

PS:使用Substitution的目的其实是为了避免不同开发环境下面Maven位置不相同,保持.launch文件统一。

你可能感兴趣的:(在Eclipse中使用Maven)