﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-BaNg-随笔分类-Eclipse</title><link>http://www.blogjava.net/lifesting/category/29581.html</link><description>Just Do It!</description><language>zh-cn</language><lastBuildDate>Fri, 30 May 2008 15:51:28 GMT</lastBuildDate><pubDate>Fri, 30 May 2008 15:51:28 GMT</pubDate><ttl>60</ttl><item><title>因为Eclipse包结构改动带来的RCP启动失败。</title><link>http://www.blogjava.net/lifesting/archive/2008/05/30/204061.html</link><dc:creator>Always BaNg.</dc:creator><author>Always BaNg.</author><pubDate>Fri, 30 May 2008 05:08:00 GMT</pubDate><guid>http://www.blogjava.net/lifesting/archive/2008/05/30/204061.html</guid><wfw:comment>http://www.blogjava.net/lifesting/comments/204061.html</wfw:comment><comments>http://www.blogjava.net/lifesting/archive/2008/05/30/204061.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lifesting/comments/commentRss/204061.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lifesting/services/trackbacks/204061.html</trackback:ping><description><![CDATA[最近要将原来的RCP 3.2的项目从GEF改为GMF 2，只能使用Eclipse 3.3来开发，当我把在3.2下运行很好的项目倒入到3.3启动的时候报告一个很奇怪的错误：<br />
<br />
!ENTRY org.eclipse.osgi 4 0 2008-05-30 12:54:33.671<br />
!MESSAGE Application error<br />
!STACK 1<br />
java.lang.RuntimeException: <span style="color: red;">Application "org.eclipse.ui.ide.workbench" could not be found in the registry.</span> The applications available are: org.eclipse.jdt.core.JavaCodeFormatter, org.eclipse.update.core.standaloneUpdate, org.eclipse.update.core.siteOptimizer, org.eclipse.equinox.app.error.<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:242)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.equinox.internal.app.EclipseAppContainer.start(EclipseAppContainer.java:98)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.equinox.internal.app.Activator.addingService(Activator.java:112)<br />
&nbsp;&nbsp; &nbsp;at org.osgi.util.tracker.ServiceTracker$Tracked.trackAdding(ServiceTracker.java:1064)<br />
&nbsp;&nbsp; &nbsp;at org.osgi.util.tracker.ServiceTracker$Tracked.trackInitialServices(ServiceTracker.java:926)<br />
&nbsp;&nbsp; &nbsp;at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:330)<br />
&nbsp;&nbsp; &nbsp;at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:274)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.equinox.internal.app.Activator.start(Activator.java:54)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:999)<br />
&nbsp;&nbsp; &nbsp;at java.security.AccessController.doPrivileged(Native Method)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:993)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:974)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:260)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:400)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:417)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:189)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:340)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(SingleSourcePackage.java:37)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:405)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:369)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:357)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83)<br />
&nbsp;&nbsp; &nbsp;at java.lang.ClassLoader.loadClass(ClassLoader.java:251)<br />
&nbsp;&nbsp; &nbsp;at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.core.internal.runtime.PlatformActivator.startAppContainer(PlatformActivator.java:47)<br />
&nbsp;&nbsp; &nbsp;at org.eclipse.core.internal.runtime.PlatformActivator.start(PlatformActivator.java:32)<br />
....<br />
<br />
红色字体表示workbench这个application并没有加载到RCP runtime中来，Plugin registry里面没有注册信息，在3.2中 extension org.eclipse.ui.ide.workbench是申明在插件org.eclipse.ui.ide中的，通过Plugin Registry Search，发现在3.3中，这个extension declaration被挪到插件org.eclipse.ui.ide.application中了，于是<strong><span style="color: red;">在项目的product配置中加入org.eclipse.ui.ide.application这个插件依赖，然后选中这个插件，点击"Add Required Plug-ins"</span></strong>，再clear, 启动，运行正常。<br />
<br />
从这个令人恼火的改动来看，Eclipse在逐渐向它的两个趋势之一靠拢，即成为产品开发平台(RCP)。(另外一个是向OSGi标准看齐)<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/lifesting/aggbug/204061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lifesting/" target="_blank">Always BaNg.</a> 2008-05-30 13:08 <a href="http://www.blogjava.net/lifesting/archive/2008/05/30/204061.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse文件转码插件</title><link>http://www.blogjava.net/lifesting/archive/2008/04/11/192250.html</link><dc:creator>Always BaNg.</dc:creator><author>Always BaNg.</author><pubDate>Fri, 11 Apr 2008 10:54:00 GMT</pubDate><guid>http://www.blogjava.net/lifesting/archive/2008/04/11/192250.html</guid><wfw:comment>http://www.blogjava.net/lifesting/comments/192250.html</wfw:comment><comments>http://www.blogjava.net/lifesting/archive/2008/04/11/192250.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/lifesting/comments/commentRss/192250.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lifesting/services/trackbacks/192250.html</trackback:ping><description><![CDATA[<p><a href="/Files/lifesting/com.lifesting.tool.encoding.rar">插件源代码下载</a>&nbsp;(导入插件在workspace中，右键export-&gt;Plug-in Development-&gt;Deployable plug-ins and fragments，然后生成插件binar文件)<br />
<a href="/Files/lifesting/com.lifesting.tool.encoding_1.0.0.zip">二进制包下载</a>&nbsp;&nbsp; （<span style="color: #ff0000"><strong>因为blogjava不许上传jar文件，请下载后将zip后缀改为jar后缀然后拷贝到eclipse/plugins目录</strong></span>)<br />
<br />
<br />
一般在使用Eclipse过程中会有两种跟<strong>文件编码(charset)</strong>有关的情况让我们不愉快。<br />
<br />
<strong>1 导入一个项目。</strong><br />
&nbsp; 假设你的同事做好了一个项目，为了更好的支持国际化，里面的jsp页面都采用UTF-8，然后发给你，你导入到Eclipse的workspace中，一般情况下，在Eclipse中，这些jsp都变成了GBK编码，你双击打开，一堆乱码。假设你知道原因，稍微如下设置一下可以解决问题：<br />
<br />
<img height="540" alt="" src="http://www.blogjava.net/images/blogjava_net/lifesting/setcharset.JPG" width="747" border="0" /><br />
(图1 设置文件编码)<br />
但是，这个项目可能包含1000个jsp文件，且你还可能反反复复碰到这个问题，真是一个体力活。<br />
<br />
<strong>2 改变一个项目文件的编码</strong><br />
这种情况发生比较少，但发生了就是一个大难题。比如公司有两个团队，一个开发的项目jsp采用UTF-8编码，另外一个采用GBK编码。一段时间之后，需要整合两个项目，jsp页面只能采用一种编码，UTF-8/GBK或其它。有经验的人知道这是一个<strong>拷贝/设置编码/粘贴</strong>的过程：<br />
&nbsp;2.1 将某个jsp的内容全部拷贝下来。<br />
&nbsp;2.2 如图1所示将编码设置为统一编码如UTF-8。<br />
&nbsp;2.3 把设置过编码的jsp文件清空，然后粘贴。<br />
&nbsp;好像解决问题很完美，但是Eclipse没有宏，如果文件很多，比如2000个，将是一个恐怖的任务。<br />
<br />
因为这两个问题老是反复的困扰着我的同事，相信也困扰了不少Java开发者，Eclipse转码插件很好很方便的解决了这个问题，它基于Eclipse 3.3开发，所以编译环境最好采用Eclipse 3.3。<br />
<br />
下面是使用步骤<br />
<br />
<span style="color: red">step1.</span> 将插件com.lifesting.tool.encoding_1.0.0.jar拷贝到eclipse/plugins目录下，重启Eclipse。<br />
<br />
<span style="color: red">step2.</span> 选择某个项目，右键选择properties，然后点击Convert Setting进行转码规则设置，如下图：<br />
<img height="528" alt="" src="http://www.blogjava.net/images/blogjava_net/lifesting/projectsetting.JPG" width="768" border="0" /></p>
(图2 项目转码规则设置)<br />
这个表格有四列，分别是<strong>文件后缀</strong>，<strong>文件目前编码</strong>，<strong>转换后的编码</strong>，<strong>是否转换文件内容，</strong>如果转换文件内容，那么对应的是前面所说的第二种情况，不转换文件内容对应的是第一种情况。比如图2的转码规则就是<span style="color: #0000ff">对项目的jsp文件，不管原来是什么编码，统一转为UTF-8编码，并且同时转换文件内容</span>。可以点击右边的Add /Remove按钮来增加/删除规则。最后点击Apply来保存设置。<br />
<br />
<span style="color: #ff0000">step3</span>. 转码<br />
&nbsp;在设置了转码规的项目上，右键选择项目，某几个文件夹或某几个文件(当然一个也可以)，然后点击Lifesting Tools-&gt;Set Encoding。插件将完成转码工作。如果我们选择的是项目，将转换整个项目；如果选择的是文件夹，转换文件夹下所有满足规则的文件；如果选择的是文件，只转换文件。<br />
<img height="672" alt="" src="http://www.blogjava.net/images/blogjava_net/lifesting/changeencoding.JPG" width="542" border="0" /><br />
(图3 转码)<br />
除了这方式外，我们还可以利用Eclipse的文件搜索功能，将搜到的文件进行转码，如下图：<br />
<img height="298" alt="" src="http://www.blogjava.net/images/blogjava_net/lifesting/searchencoding.JPG" width="787" border="0" /><br />
(图4 在search view里转码)<br />
如上图所示，我们搜到了整个workspace的jsp文件，然后点击绿色E小图标，插件将会把所有满足结果的文件转码，每个文件的转换规则依赖它所属项目的转码规则设置。<br />
<br />
<img src ="http://www.blogjava.net/lifesting/aggbug/192250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lifesting/" target="_blank">Always BaNg.</a> 2008-04-11 18:54 <a href="http://www.blogjava.net/lifesting/archive/2008/04/11/192250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>当Maven遇上MyEclipse</title><link>http://www.blogjava.net/lifesting/archive/2008/04/02/190367.html</link><dc:creator>Always BaNg.</dc:creator><author>Always BaNg.</author><pubDate>Wed, 02 Apr 2008 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/lifesting/archive/2008/04/02/190367.html</guid><wfw:comment>http://www.blogjava.net/lifesting/comments/190367.html</wfw:comment><comments>http://www.blogjava.net/lifesting/archive/2008/04/02/190367.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lifesting/comments/commentRss/190367.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lifesting/services/trackbacks/190367.html</trackback:ping><description><![CDATA[<br />
Maven有自己的一套约定目录规则，与MyEclipse的有冲突，其实结合也很简单，因为MyEclipse的目录可配置。<br />
<br />
1 用maven创建一个web project<br />
<strong>&nbsp;mvn archetype:create&nbsp;&nbsp; -DgroupId=com.lifesting&nbsp; -DartifactId=test&nbsp; -DarchetypeArtifactId=maven-archetype-webapp<br />
</strong><br />
2 补全某些目录<br />
&nbsp;cd test\src<br />
&nbsp;mkdir&nbsp;main\java<br />
&nbsp;mkdir test\resources<br />
&nbsp;mkdir test\java<br />
<br />
3 修改pom文件，在生成eclipse项目的时候maven eclipse plugin使用此配置<br />
&nbsp; 在project/build下面插入<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">plugins</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">plugin</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">org.apache.maven.plugins</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">groupId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">maven-eclipse-plugin</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">artifactId</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">configuration</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">projectnatures</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">java</span><span style="color: #ff0000">.lang.String</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">com.genuitec.eclipse.j2eedt.core.webnature</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">java.lang.String</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">java</span><span style="color: #ff0000">.lang.String</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">org.eclipse.jdt.core.javanature</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">java.lang.String</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">projectnatures</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">outputDirectory</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">src/main/webapp/WEB-INF/classes</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">outputDirectory</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">configuration</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">plugin</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">plugins</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span></div>
project nature是eclipse开发中一个概念，比如加入javanature就表示此项目是一个java project，会绑定一个java builder用来编译java文件，而webnature告诉MyEclipse这是一个MyEclipse web项目，更多MyEclipse projectNature：<br />
webservice-- com.genuitec.eclipse.ws.xfire.wsnature<br />
facelet-- com.genuitec.eclipse.jsf.faceletsnature<br />
jsf--com.genuitec.eclipse.jsf.jsfnature<br />
struts--com.genuitec.eclipse.cross.easystruts.eclipse.easystrutsnature<br />
或者在插件里面使用这个方法：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">IProject&nbsp;project&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ResourcesPlugin.getWorkspace().getRoot().getProject(</span><span style="color: #000000">"</span><span style="color: #000000">test</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_86_217_Open_Image" onclick="this.style.display='none'; Codehighlighter1_86_217_Open_Text.style.display='none'; Codehighlighter1_86_217_Closed_Image.style.display='inline'; Codehighlighter1_86_217_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_86_217_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_86_217_Closed_Text.style.display='none'; Codehighlighter1_86_217_Open_Image.style.display='inline'; Codehighlighter1_86_217_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_86_217_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_86_217_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;natures&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;project.getDescription().getNatureIds();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(String&nbsp;nature&nbsp;:natures)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(nature);<br />
<img id="Codehighlighter1_243_271_Open_Image" onclick="this.style.display='none'; Codehighlighter1_243_271_Open_Text.style.display='none'; Codehighlighter1_243_271_Closed_Image.style.display='inline'; Codehighlighter1_243_271_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_243_271_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_243_271_Closed_Text.style.display='none'; Codehighlighter1_243_271_Open_Image.style.display='inline'; Codehighlighter1_243_271_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(CoreException&nbsp;e)&nbsp;</span><span id="Codehighlighter1_243_271_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_243_271_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
可以将项目所有的nature打印出来<br />
<br />
outputDirectory主要是告诉maven eclipse plugin编译输出在什么位置，默认在target/classes下面，web项目不同，应该放在src/main/webapp/WEB-INF/classes 才能够被MyEclipse package到服务器。<br />
<br />
4 在命令行test目录下运行mvn eclipse:eclipse生成Eclipse项目。<br />
<br />
5 在MyEclipse中将test project 导入到workspace，MyEclipse通过projectNature识别到test是一个MyEclipse web project，它会在项目目录下生成一个.mymetadata文件。再关闭MyEclipse，这么做的原因是因为默认MyEclipse的webRoot不可配置。<br />
<br />
6 修改MyEclipse下面的.mymetadata文件，比如我的test项目文件内容为<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">project-module<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="WEB"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;name</span><span style="color: #0000ff">="test"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;id</span><span style="color: #0000ff">="myeclipse.1207117121765"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;j2ee-spec</span><span style="color: #0000ff">="1.4"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;archive</span><span style="color: #0000ff">="test.war"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">attributes</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">attribute&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="webrootdir"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="/WebRoot"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">attributes</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">project-module</span><span style="color: #0000ff">&gt;</span></div>
增加一行，修改一行为：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">project-module<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="WEB"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;name</span><span style="color: #0000ff">="test"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;id</span><span style="color: #0000ff">="myeclipse.1207117121765"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;context-root</span><span style="color: #0000ff">="/test"</span><span style="color: #ff0000">"<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;j2ee-spec</span><span style="color: #0000ff">="1.4"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;archive</span><span style="color: #0000ff">="test.war"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">attributes</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">attribute&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="webrootdir"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="/src/main/webapp"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">attributes</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">project-module</span><span style="color: #0000ff">&gt;</span></div>
<br />
可以看到，增加的一行 context-root="/test" 表示web的上下文为test.<br />
修改的一行为webrootdir的值，将/WebRoot改为maven默认的web项目source目录/src/main/webapp。<br />
<br />
7 重新启动MyEclipse，一切搞定了，调试开发两不误。<br />
<br />
参考资料<br />
<a href="http://www.myeclipseide.com/PNphpBB2-viewtopic-t-17416.html">http://www.myeclipseide.com/PNphpBB2-viewtopic-t-17416.html</a><br />
 <img src ="http://www.blogjava.net/lifesting/aggbug/190367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lifesting/" target="_blank">Always BaNg.</a> 2008-04-02 14:32 <a href="http://www.blogjava.net/lifesting/archive/2008/04/02/190367.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>源代码才50K的eclipse中文properties编辑插件（更新)</title><link>http://www.blogjava.net/lifesting/archive/2008/03/31/189772.html</link><dc:creator>Always BaNg.</dc:creator><author>Always BaNg.</author><pubDate>Mon, 31 Mar 2008 06:10:00 GMT</pubDate><guid>http://www.blogjava.net/lifesting/archive/2008/03/31/189772.html</guid><wfw:comment>http://www.blogjava.net/lifesting/comments/189772.html</wfw:comment><comments>http://www.blogjava.net/lifesting/archive/2008/03/31/189772.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/lifesting/comments/commentRss/189772.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lifesting/services/trackbacks/189772.html</trackback:ping><description><![CDATA[<p><a href="/Files/lifesting/com.lifesting.peditor.rar">下载插件源代码</a>(eclipse 3.3)</p>
<p><a href="/Files/lifesting/com.lifesting.peditor_1.0.0.zip">下载eclipse 3.2 binary</a><span style="color: red;">下载后改后缀zip为jar，然后放到eclipse/plugins目录</span><br />
</p>
<p>eclipse内置一个properties editor但是只支持latin-1编码，调用native2ascii太麻烦，sourceforge上有一个很强大的properties editor，日本人搞得，肯定支持中文了，但是版本太老，3.1，还有很多没有什么多大用处的swing, jbuild支持等，我稍微改了一下，做了一个最小化的编辑器。<br />
<br />
严正申明，<strong>此软件属于研究性质，版权属于原作者：http://propedit.sourceforge.jp/index_en.html<br />
<br />
</strong>效果：<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/lifesting/peditor.JPG" border="0" /><br />
<br />
下载后将工程导入到workspace中，export成plugin即可。<br />
</p>
<img src ="http://www.blogjava.net/lifesting/aggbug/189772.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lifesting/" target="_blank">Always BaNg.</a> 2008-03-31 14:10 <a href="http://www.blogjava.net/lifesting/archive/2008/03/31/189772.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>