Eclipse PDE构建/导出插件/功能/更新站点不支持文件编码 - 如何禁止重新编译

时间:2011-12-03 02:21:41

标签: java eclipse encoding ant eclipse-plugin

我写了一个很好的插件,它包含了一些生成的java源代码。

我可以很好地构建项目。 我可以在运行配置中运行它,启动另一个eclipse,它可以根据自己的喜好运行。

所以我想:时间让它可以安装。

因此,我创建了一个功能项目和一个更新站点项目,并构建和导出它,看起来它工作正常。我甚至可以从我的更新站点“安装”它,或直接在正在运行的工作台中导出插件。我看到它已安装但如果我尝试打开一个会激活我的插件的文件,它会抛出异常。具体来说,它告诉我“存在未解决的编译问题”。

经过长时间的搜索,重建(没有错误),一次又一次地重新测试我找到一个logs.zip文件,其目录的名称类似于我的插件,其中有54k文件(请注意,它是2011年和磁盘空间非常稀缺,显然是有趣的名字@dot.log。看这样的文件一定是多么绝望?!但是,令人惊讶的是,它出现了54k错误消息,如下所示:

# 02.12.11 19:58:55 MEZ
# Eclipse Compiler for Java(TM) 0.B76_R37x, 3.7.1, Copyright IBM Corp 2000, 2011. All rights reserved.
----------
1. ERROR in X:\dev\frege\FregIDE\src\frege\IO.java (at line 1451)
final public static Consts ij = new Consts();
                            ^
Syntax error on token "Invalid Character", delete this token

“无效字符”当然是完全合法的java标识符字符,只是它们不是ASCII字母。这就是为什么我将所有文件设置为UTF-8,将UTF-8设置为默认编码,如前所述,正常构建它完美地运行。

当我导出更新站点,功能或插件时,有没有办法阻止eclipse重新编译所有内容。这是我最喜欢的,因为一切都已编译,重新编译需要一分钟左右。 (甚至还有一个标志“使用在工作区中编译的类文件。”但它似乎什么都不做 - 它只是重新编译。)

替代方案:我可以以某种方式修改它用于构建它的脚本吗?我找不到他用来构建的蚂蚁脚本。如果我可以查找javac步骤并将编码UTF-8放在那里(这就是我期望的问题。) 有一个“另存为Ant脚本”复选框,但Ant文件只包含:

<?xml version="1.0" encoding="UTF-8"?>
<project default="feature_export" name="build">
<target name="feature_export">
    <pde.exportFeatures destination="x:\dev\frege\FregeUpdateSite"
                                exportSource="false" exportType="directory" 
                                features="FregeFeature" useJARFormat="true"/>
</target>
</project>

如果我无法阻止编译,我如何让eclipse使用编译版本的正确设置?

2 个答案:

答案 0 :(得分:7)

如果您使用“pde.exportFeatures”任务从工作区导出,那么我相信有一个属性“useWorkspaceCompiledClasses”来使用工作区中的二进制文件。这相当于导出向导中的复选框。

请注意,pde.exportFeatures任务是从UI导出的,与headless PDE/Build不同。弗朗西斯所指的properties是无头PDE / Build。在导出期间,PDE / UI会为您管理这些内容,您无法更改它们。

plug-in and feature specific properties会影响UI导出以及无头构建。 (在我对弗朗西斯回答的评论中,我的链接不正确。)

我建议在插件的build.properties文件中设置编码,而不是重用工作区二进制文件。我还建议设置一个真正的PDE / Build无头构建,而不是从UI任务导出。

答案 1 :(得分:6)

您可以使用作为PDE构建一部分的build.properties文件来设置在构建中完成的编译的编译器选项:http://help.eclipse.org/indigo/topic/org.eclipse.pde.doc.user/reference/pde_builder_config.htm(使用-encoding选项)

我不知道在构建中使用工作区中的类文件。