2013-07-23 3 views
1

Я пытаюсь преобразовать задачу Ant в задачу Maven's antrun plugin.Как сделать задачу Maven's antrun для генерации источников из AIDL-файлов?

Муравей задача такова:

<aidl executable="${aidl}" 
    framework="${project.target.framework.aidl}" 
    libraryBinAidlFolderPathRefid="project.library.bin.aidl.folder.path" 
    genFolder="${gen.absolute.dir}" 
    aidlOutFolder="${out.aidl.absolute.dir}"> 
    <source path="${source.absolute.dir}"/> 
</aidl> 

Этот код из файла андроид SDK build.xml.

Любая идея, как это должно быть в плагине Maven Antrun?

ответ

1

Я отправляю то, как я это делал сейчас, на случай, если кто-то ищет такое же решение.

Обратите внимание, что код не является чистым и не переносимым.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>generate-aidl</id> 
     <phase>generate-sources</phase> 
     <configuration> 
     <target name="convert-aidl-files"> 
      <property name="aidl" location="${env.ANDROID_HOME}/build-tools/android-4.2.2/aidl${exe}"/> 
      <property name="framework.aidl" location="${env.ANDROID_HOME}/platforms/android-17/framework.aidl"/> 
      <apply executable="${aidl}" parallel="false"> 
      <arg value="-I${src.dir}"/> 
      <arg value="-p${framework.aidl}"/> 
      <arg value="-o${gen.dir}"/> 
      <srcfile/> 
      <fileset dir="${src.dir}"> 
       <include name="**\*.aidl"/> 
      </fileset> 
      </apply> 
     </target> 
     </configuration> 
     <goals> 
     <goal>run</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 
  • The maven-antrun-plugin является Maven плагин для выполнения задачи Ant.
  • Недвижимость aidl указывает на helpl.exe из SDK для создания SDK. Эта часть скрипта использует жестко заданные значения. Лучшим способом будет поиск местоположения динамически, но, к сожалению, я еще не нашел способ сделать это.
  • Свойство framework.aidl указывает на файл framework.aidl из Android SDK. Эта часть скрипта использует жестко заданные значения. Лучшим способом будет поиск местоположения динамически, но, к сожалению, я еще не нашел способ сделать это.
  • Задача муравья apply используется для выполнения helpl.exe с fileset в качестве входного аргумента.
  • srcfile используется для обозначения входных файлов для задачи apply. srcfile пуст, но я использовал fileset, чтобы фильтровать только файлы с расширением * .aidl.