mavan2 与 myeclipse的结合

Maven有自己的一套约定目录规则,与MyEclipse的有冲突,其实结合也很简单,因为MyEclipse的目录可配置。

1用maven创建一个webproject

mvnarchetype:create-DgroupId=com.lifesting-DartifactId=test-DarchetypeArtifactId=maven-archetype-webapp

2补全某些目录

cdtest\src

mkdirmain\java

mkdirtest\resources

mkdirtest\java

3修改pom文件,在生成eclipse项目的时候maveneclipseplugin使用此配置

在project/build下面插入

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-eclipse-plugin</artifactId>

<configuration>

<projectnatures>

<java.lang.String>com.genuitec.eclipse.j2eedt.core.webnature</java.lang.String>

<java.lang.String>org.eclipse.jdt.core.javanature</java.lang.String>

</projectnatures>

<outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>

</configuration>

</plugin>

</plugins>

projectnature是eclipse开发中一个概念,比如加入javanature就表示此项目是一个javaproject,会绑定一个javabuilder用来编译java文件,而webnature告诉MyEclipse这是一个MyEclipseweb项目,更多MyEclipseprojectNature:

webservice--com.genuitec.eclipse.ws.xfire.wsnature

facelet--com.genuitec.eclipse.jsf.faceletsnature

jsf--com.genuitec.eclipse.jsf.jsfnature

struts--com.genuitec.eclipse.cross.easystruts.eclipse.easystrutsnature

或者在插件里面使用这个方法:

IProjectproject=ResourcesPlugin.getWorkspace().getRoot().getProject("test");

try{

String[]natures=project.getDescription().getNatureIds();

for(Stringnature:natures)

System.out.println(nature);

}catch(CoreExceptione){

e.printStackTrace();

}

可以将项目所有的nature打印出来

outputDirectory主要是告诉maveneclipseplugin编译输出在什么位置,默认在target/classes下面,web项目不同,应该放在src/main/webapp/WEB-INF/classes才能够被MyEclipsepackage到服务器。

4在命令行test目录下运行mvneclipse:eclipse生成Eclipse项目。

5在MyEclipse中将testproject导入到workspace,MyEclipse通过projectNature识别到test是一个MyEclipsewebproject,它会在项目目录下生成一个.mymetadata文件。再关闭MyEclipse,这么做的原因是因为默认MyEclipse的webRoot不可配置。

6修改MyEclipse下面的.mymetadata文件,比如我的test项目文件内容为

<?xmlversion="1.0"encoding="UTF-8"?>

<project-module

type="WEB"

name="test"

id="myeclipse.1207117121765"

j2ee-spec="1.4"

archive="test.war">

<attributes>

<attributename="webrootdir"value="/WebRoot"/>

</attributes>

</project-module>

增加一行,修改一行为:

<?xmlversion="1.0"encoding="UTF-8"?>

<project-module

type="WEB"

name="test"

id="myeclipse.1207117121765"

context-root="/test""

j2ee-spec="1.4"

archive="test.war">

<attributes>

<attributename="webrootdir"value="/src/main/webapp"/>

</attributes>

</project-module>

可以看到,增加的一行context-root="/test"表示web的上下文为test.

修改的一行为webrootdir的值,将/WebRoot改为maven默认的web项目source目录/src/main/webapp。

7重新启动MyEclipse,一切搞定了,调试开发两不误。

参考资料

http://www.myeclipseide.com/PNphpBB2-viewtopic-t-17416.html

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lusterfly/archive/2009/09/25/4595456.aspx

相关推荐