Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何制作Maven';从AIDL文件生成源的antrun任务?_Android_Maven_Ant_Aidl_Maven Antrun Plugin - Fatal编程技术网

Android 如何制作Maven';从AIDL文件生成源的antrun任务?

Android 如何制作Maven';从AIDL文件生成源的antrun任务?,android,maven,ant,aidl,maven-antrun-plugin,Android,Maven,Ant,Aidl,Maven Antrun Plugin,我正在尝试将Ant任务转换为Maven的antrun插件任务 Ant任务如下所示: <aidl executable="${aidl}" framework="${project.target.framework.aidl}" libraryBinAidlFolderPathRefid="project.library.bin.aidl.folder.path" genFolder="${gen.absolute.dir}" aidlOutFolder="$

我正在尝试将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插件应该是什么样子吗?

我现在发布我的方法,以防有人在寻找相同的解决方案

请注意,代码不干净,不可移植

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

org.apache.maven.plugins
maven antrun插件
生成aidl
生成源
跑
  • maven antrun插件
    是执行ant任务的maven插件
  • 属性
    aidl
    指向来自Android SDK构建工具的aidl.exe。脚本的这一部分使用硬编码值。更好的方法是动态地发现位置,但不幸的是,我还没有找到这样做的方法
  • 属性
    framework.aidl
    指向来自Android SDK的framework.aidl文件。脚本的这一部分使用硬编码值。更好的方法是动态地发现位置,但不幸的是,我还没有找到这样做的方法
  • apply
    ant任务用于以
    fileset
    作为输入参数执行aidl.exe
  • srcfile
    用于说明
    apply
    任务的输入文件。
    srcfile
    是空的,但是我使用下面的
    fileset
    只过滤扩展名为*.aidl的文件

使用更方便,然后:

mvn clean android:generate-sources