当Maven遇上MyEclipse

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

1 用maven创建一个web project
mvn archetype:create -DgroupId=com.lifesting -DartifactId=test -DarchetypeArtifactId=maven-archetype-webapp

2 补全某些目录
cd test/src
mkdirmain/java
mkdir test/resources
mkdir test/java

3 修改pom文件,在生成eclipse项目的时候maven eclipse plugin使用此配置
在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 >

project nature是eclipse开发中一个概念,比如加入javanature就表示此项目是一个java project,会绑定一个java builder用来编译java文件,而webnature告诉MyEclipse这是一个MyEclipse web项目,更多MyEclipse projectNature:
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主要是告诉maven eclipse plugin编译输出在什么位置,默认在target/classes下面,web项目不同,应该放在src/main/webapp/WEB-INF/classes 才能够被MyEclipse package到服务器。

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

5 在MyEclipse中将test project 导入到workspace,MyEclipse通过projectNature识别到test是一个MyEclipse web project,它会在项目目录下生成一个.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 >
< attribute name ="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 >
< attribute name ="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

 

------------------------------------------------------------------------------------------------------------------------------------------------

Struts(Struts2.1.6)自带的例子(Maven编译的)顺利导入MyEclipse中

 

具体步骤如下(有点麻烦,以后改进):

先期工作:下载并安装成功Maven环境。

1. 下载struts2.1.6源码,在apps目录下就是例子源码

2. 修改各个工程的pom.xml文件, 在build/plugins下加入以下plugin(供生成eclipse工程用):

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<projectnatures>
<!--这句会让你在MyEclipse下看到Maven标志-一个红色M-->
<java.lang.String>com.genuitec.eclipse.maven.maven2Nature</java.lang.String>
<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>

3. 命令行下定位到apps下,针对各例子逐个执行以下命令(以blank为例

>cd blank

>mvn eclipse:eclipse

4. 用MyEclipse导入你生成的eclipse工程,然后再移除(不是删掉内容哦!这么麻烦就是想要MyEclipse生成的.mymetadata文件)

修改.mymetadata文件为如下样式:

<?xml version="1.0" encoding="UTF-8"?>
<project-module
type="WEB"
name="struts2-blank"
id="myeclipse.1237001022359"
context-root="/struts2-blank"
j2ee-spec="1.4"
archive="struts2-blank.war">
<attributes>
<attribute name="webrootdir" value="/src/main/webapp" />
</attributes>
</project-module>

这步也可采用如下做法(测试):

第3步后,直接在工程目录下创建一个.mymetadata文件,写入以上文件内容(注意修改红色部分哦!)

修改后重新导入MyEclipse,基本就是可以用了。

5. 解决可能出现的Build Path问题

 

Tag标签: maven, myeclipse
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值