Eclipse PDE build/export plugin/feature/update site does not respect file encoding - how to forbid recompiling

Я написал хороший плагин, который включает в себя несколько сгенерированных 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 перекомпилировать все, когда я экспортирую сайт обновления, функцию или плагин. Это то, что я бы предпочел больше всего, так как все уже скомпилировано, а перекомпиляция занимает еще минуту или около того. (Есть даже флаг "Use class files compiled in the workspace.", но он, похоже, ничего не делает - он просто перекомпилирует.)

Альтернатива: Могу ли я как-то изменить сценарий, который используется для сборки? Я не могу найти скрипт ant, который он использует для сборки. Если бы я мог найти шаг javac и поставить там кодировку UTF-8 (именно в этом, как я предполагаю, и заключается проблема). Есть флажок "Сохранить как Ant script", но 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 использовать правильные настройки для сборки, если я не могу предотвратить компиляцию?

5
задан Ingo 3 December 2011 в 02:21
поделиться