Фаза предварительной обработки Java - PullRequest
4 голосов
/ 21 января 2011

Я пишу Java-приложение, которому нужно много статических данных, которые хранятся во многих типах enum. Так как мне нужен удобный способ настройки этих данных с использованием, например, файлов xml или json, но я не могу делать это напрямую с перечислениями, я искал способ сделать это элегантно.

Возможно, хорошим решением было бы иметь отдельную java-программу, которая читает файлы xml и создает исходные коды java, которые затем компилируются с оставшейся частью исходных текстов. Моя работа - как автоматизировать этот процесс в одиночку (например, ant?) И как легко интегрировать его с Eclipse, чтобы он автоматически выполнялся, когда я работаю с проектом. ищет уже существует? Любое предложение, чтобы решить мою проблему?

Спасибо!

Ответы [ 5 ]

2 голосов
/ 22 января 2011

Если элементы и общая структура каким-то образом фиксированы (и что больше всего меняется, так это значения атрибутов), вы можете рассмотреть определение enum с одной записью для каждого из ваших элементов и позволить enum заполнять свои собственные константы даннымичтение из внешнего источника (XML / JSON) - во время загрузки или по запросу.

1 голос
/ 22 января 2011

Вы можете написать плагин maven, который генерирует код.Есть несколько плагинов, которые делают это.Он не будет работать автоматически, но вы можете подключить его к стандартному жизненному циклу maven, чтобы он выполнялся непосредственно перед компиляцией.Я недавно сделал что-то подобное.

1 голос
/ 22 января 2011

Вы можете легко интегрировать ant с eclipse для достижения следующих условий:

В свойствах открытого проекта Eclipse перейдите в «Builders», нажмите «New ...», выберите «Ant Builder», выберите сборкуфайл, перейдите на вкладку «Targets» и нажмите «Set Targets ...» для «Auto Build».Выберите желаемую цель, и все готово.Цель будет запускаться каждый раз, когда вы сохраняете исходный файл (если выбрано «Автоматически строить»).

1 голос
/ 22 января 2011

Создайте проект, единственной задачей которого является генерация Java из ваших источников. Убедитесь, что фаза генерации выполнена Ant.

Теперь оберните этот проект в затмение и используйте пользовательский сборщик муравьев, который вызывает цель в уже существующем build.xml.

Это стандартная часть нашей инфраструктуры разработки, поэтому она определенно работает.

0 голосов
/ 22 января 2011

Рассматривали ли вы включение файлов XML в ваш jar-файл и загрузку их при запуске в карты, использующие перечисление в качестве ключа?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...