2015-01-28 2 views
1

현재 Android Studio 및 Gradle을 발견하고 bash 스크립트에서 내 프로젝트의 모든 빌드 체인을 Gradle 구성으로 마이그레이션하고 있습니다. 결국 엔 끝내 주겠지 만, 고군분투하고 있습니다.Gradle을 사용하여 Javadoc 태스크에서 aidl 파일을 제외하십시오.

지금하고 싶은 일은 아주 간단합니다. 나는 (내가 http://snowdream.github.io/blog/android/2013/11/01/how-to-generate-javadocs-with-android-gradle-plugin/에서이 조각을했다) 내 소스에서 자바 독을 생성하는 표준 규칙이 :

android.libraryVariants.all { variant -> 
    task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) { 
     source = variant.javaCompile.source 
     def androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar" 

     classpath = files(variant.javaCompile.classpath.files, androidJar) 
     options { 
      links "http://docs.oracle.com/javase/7/docs/api/" 
      linksOffline "http://d.android.com/reference","${android.sdkDirectory}/docs/reference" 
     } 
     exclude '**/BuildConfig.java' 
     exclude '**/R.java' 
    } 
} 

하지만 내 프로젝트도 포함 AIDL 파일과 나는이 AIDL 파일 (이나 된 .java 파일을하지 않으을 그들로부터 생성 된)는 Javadoc에 포함됩니다.

나는 규칙 시도 :

exclude "**/$buildDir/**" 

을 ... 그리고 천 다른 사람을 시도했지만 아무도 작동하지 않습니다 내 인터페이스와 스텁은 HTML 파일로 처리됩니다.

나는 당신의 도움을 간청합니다! 고마워.

답변

2

Gradle을하고 그루비 일, 내가 찾은 가장 좋은 방법은 방법에 대한 연구의 시간 후에 그러나

exclude { 
    it.file.path.contains('aidl') 
} 

, 난 아직 만족 해요. 나는 AIDL에 의해 생성 된 Java 파일을 가리키는 variant.aidlCompile.sourceOutputDir을 사용하여 덜 잔인한 일을 할 수 있다고 느낍니다. 추가 연구 후

, 또 다른 방법은 인터페이스를 숨기는 것입니다 :하지만

편집이 ...이 File, 또는 FileTree, 또는 어떤 모양 내가 줄에 폐쇄의 반복 요소를 비교할 수 @hide 태그 (예 : Doclava)를 지원하는 사용자 정의 도크 렛을 사용하여 AIDL에 정의되었습니다. Javadoc 생성 중에 오류가 발생하지 않기 때문에이 메서드를 사용하는 것이 좋습니다.

관련 문제