2013-07-23 7 views
1

Ant 태스크를 Maven의 antrun 플러그인 태스크로 변환하려고합니다.Maven의 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> 
  • maven-antrun-plugin

    개미 작업을 실행하는 받는다는 플러그인입니다.
  • 속성 aidl은 Android SDK 빌드 도구의 aidl.exe를 가리 킵니다. 스크립트의이 부분은 하드 코딩 된 값을 사용하고 있습니다. 더 좋은 방법은 위치를 동적으로 발견하는 것입니다.하지만 불행히도 아직 위치를 찾지 못했습니다.
  • 속성 framework.aidl은 Android SDK의 framework.aidl 파일을 가리키고 있습니다. 스크립트의이 부분은 하드 코딩 된 값을 사용하고 있습니다. 더 좋은 방법은 위치를 동적으로 발견하는 것입니다.하지만 불행히도 아직 위치를 찾지 못했습니다.
  • apply 개미 작업은 입력 인수로 fileset 인 aidl.exe를 실행하는 데 사용됩니다.
  • srcfileapply 작업의 입력 파일을 언급하는 데 사용됩니다. srcfile은 비어 있지만 아래의 fileset을 사용하여 * .aidl 확장명의 파일 만 필터링합니다.