1

Ant タスクを Maven の antrun プラグイン タスクに変換しようとしています。

Ant タスクは次のようになります。

<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>

このコードは、android sdk build.xml ファイルからのものです。

Maven antrun プラグインでどのようにすべきか考えていますか?

4

2 に答える 2

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>
  • maven-antrun-pluginAnt タスクを実行するための Maven プラグインです。
  • プロパティaidlは、Android SDK build-tools からの aidl.exe を指しています。スクリプトのこの部分では、ハードコードされた値が使用されています。より良い方法は場所を動的に発見することですが、残念ながら私はまだそれを行う方法を見つけていません.
  • このプロパティframework.aidlは、Android SDK の Framework.aidl ファイルを指しています。スクリプトのこの部分では、ハードコードされた値が使用されています。より良い方法は場所を動的に発見することですが、残念ながら私はまだそれを行う方法を見つけていません.
  • ant タスクは、入力引数としてapplyaidl.exe を実行するために使用されます。fileset
  • srcfile、タスクの入力ファイルに言及するために使用されapplyます。はsrcfile空ですが、fileset以下を使用して、拡張子が *.aidl のファイルのみをフィルタリングしました。
于 2013-08-07T06:22:14.930 に答える
1

android-maven-pluginを使用する方が便利です。

mvn clean android:generate-sources
于 2013-11-13T08:47:13.757 に答える