Редактирование ant build.xml файл для примера OSGi — непонимание инструкции

#ant #osgi

#ant #osgi

Вопрос:

Я пытаюсь разобраться с монолитом знаний, которым является OSGi, и столкнулся с проблемой, когда инструкций в примере недостаточно для человека, совершенно не знакомого с Ant.

Я следую примеру использования jEdit и разбиения его на пакеты, как описано в примере главы 6 OSGi в действии. Одним из первых шагов является редактирование build.xml файл, специально предназначенный для удаления задачи jar и замены ее определением bnd. И затем мне говорят «добавить инструкции, чтобы сообщить bnd, куда поместить сгенерированный пакет». И вот тут я запутался, потому что я раньше не работал с Ant и планирую использовать Maven за пределами этого примера. Я надеюсь, что кто-нибудь может объяснить, что пример просит меня сделать. Текст выглядит следующим образом (на странице 209 главы 6):

 First, comment out the jar task:

<!-- jar jarfile="jedit.jar"                 
  manifest="org/gjt/sp/jedit/jedit.manifest" 
  compress="false">
...
</jar -->

The first line above shows where to put the JAR file,
and the second lists fixed manifest entries. Next,
add the bnd definition and target task:

<taskdef resource="aQute/bnd/ant/taskdef.properties"
  classpath="../../../lib/bnd-0.0.384.jar" /> 
<bnd classpath="${build.directory}"           
  files="jedit-mega.bnd" />

Here, you first give the location of the bnd JAR file to tell
Ant where it can find the bnd task definition. Then you specify
a bnd task to create your bundle JAR file, giving it the project
class path and the file containing your bnd instructions....The
first thing you must add is an instruction to tell bnd where to 
put the generated bundle:

-output: jedit.jar

The bnd task can also copy additional manifest headers into the final 
manifest, so let’s ask bnd to include the original jEdit manifest rather 
than duplicate its content in your new file:

-include: org/gjt/sp/jedit/jedit.manifest
  

В принципе, я понятия не имею, что делать с -output и -include. Мои правки на данный момент заключаются в следующем:

jEdit build.xml скриншот

Ответ №1:

Похоже, это официальный документ вашей задачи bnd:

http://www.aqute.biz/Bnd/Ant

вывод и включение, похоже, являются атрибутами задачи

Так что это может быть:

 <bnd classpath="${build.directory}"           
  files="jedit-mega.bnd" 
  output = 'jedit.jar'/>
  

И на странице параметров командной строки кажется, что вывод выполняется следующим образом:

Переопределите выходное имя пакета или каталога по умолчанию. Если результатом является каталог, имя будет производным от имени файла bnd.

Но включение нигде не упоминается.

Также может быть, что эти значения предназначены для самого bnd-файла (кажется разумным):http://www.aqute.biz/Bnd/Format

Комментарии:

1. ага — да. Вы правы насчет bnd-файла. Теперь я читаю этот раздел совершенно по-другому. По какой-то причине я думал, что файл bnd будет готовым результатом, а не чем-то, что я должен был создать сам.