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
相关推荐
A.在myeclise中恢复例子开发环境:1>在myeclipse中新建一个web工程,项目名称自己任意取名,"J2EE Specification Level"一栏选择"J2EE1.4",然后点击"