Eclipse PDE плагин сборки / экспорта / функция / сайт обновлений не соблюдает кодировку файлов - как запретить перекомпиляцию - PullRequest
5 голосов
/ 03 декабря 2011

Я написал хороший плагин, который объединяет некоторые сгенерированные Java-источники.

Я могу построить проект просто отлично. Я могу запустить его в конфигурации запуска, которая запускает другое затмение, и оно мне нравится.

Вот я и подумал: пора сделать его пригодным для установки.

Поэтому я создал проект объектов и проект сайта обновлений, а также создал и экспортировал его, и, похоже, он работает нормально. Я даже могу «установить» его с моего сайта обновлений или экспортировать плагин прямо в работающую рабочую среду. Я вижу, что он установлен, но если я пытаюсь открыть файл, который активирует мой плагин, он выдает исключения. В частности, он говорит мне, что есть «нерешенные проблемы компиляции».

После долгого поиска, перестроения (без ошибок), повторного тестирования снова и снова, я нахожу файл 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 ]

7 голосов
/ 14 декабря 2011

Если вы используете задачу «pde.exportFeatures» для экспорта из рабочей области, то я считаю, что есть атрибут «useWorkspaceCompiledClasses» для использования двоичных файлов из рабочей области. Это эквивалентно флажку в мастере экспорта.

Обратите внимание, что задача pde.exportFeatures является экспортом из пользовательского интерфейса и отличается от PDE без заголовка / сборки . свойства , на которые ссылается Фрэнсис, предназначены для PDE / Build без головы. Во время экспорта PDE / UI управляет ими для вас, и вы не можете их изменить.

Плагин и специфические свойства будут влиять на экспорт пользовательского интерфейса, а также на сборку без монитора. (Я получил неверную ссылку в своем комментарии к ответу Фрэнсиса).

Я бы рекомендовал установить кодировку в файле build.properties плагина вместо повторного использования двоичных файлов рабочей области. Я бы также предложил настроить реальную сборку без PDE / Build вместо задачи экспорта из пользовательского интерфейса.

6 голосов
/ 13 декабря 2011

Вы можете использовать файл build.properties, который является частью сборки PDE, чтобы установить параметры компиляции для компиляции, которая выполняется в сборке: http://help.eclipse.org/indigo/topic/org.eclipse.pde.doc.user/reference/pde_builder_config.htm (используйте параметр -encoding)

Я не знаю, как использовать файлы классов из вашей рабочей области в сборке.

...