如何在Gradle Javadoc任务中排除生成的文件?

14

我在gradle构建中通过第三方插件生成了一些代码。生成的代码javadoc格式不正确。

因此,我试图从gradle的javadoc任务中排除该路径,但它没有起作用。我查看了类似的问题,但没有提供有用的答案。

$> ./gradlew --version
------------------------------------------------------------
Gradle 4.3
------------------------------------------------------------

Build time:   2017-10-30 15:43:29 UTC
Revision:     c684c202534c4138b51033b52d871939b8d38d72

Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_121 (Oracle Corporation 25.121-b13)
OS:           Windows 7 6.1 amd64

这是我的 build.gradle 文件

sourceSets {
  main {
    compileClasspath += java.srcDir("${buildDir}/generated/src/main/com4j")
    runtimeClasspath += java.srcDir("${buildDir}/generated/src/main/com4j")
  }
  test {
    compileClasspath += java.srcDir("${buildDir}/generated/src/main/com4j")
    runtimeClasspath += java.srcDir("${buildDir}/generated/src/main/com4j")
  }
}

javadoc {
  exclude "**/generated/**"
  source = sourceSets.main.allJava
}

没有影响。

$> ./gradlew javadoc
:javadocC:\cygwin64\home\username\sourcecode\COMJurer\build\generated\src\main\com4j\com\app\com4j\api\ClassFactory.java:15: warning: no @return
  public static com.app.com4j.api.IAPI createAPI() {
                                                     ^
C:\cygwin64\home\username\sourcecode\COMJurer\build\generated\src\main\com4j\com\app\com4j\api\IAPI.java:99: error: malformed HTML
   * @param xmlReturn Mandatory Holder<java.lang.String> parameter.
                                  ^
 C:\cygwin64\home\username\sourcecode\COMJurer\build\generated\src\main\com4j\com\app\com4j\api\IAPI.java:99: error: bad use of '>'
   * @param xmlReturn Mandatory Holder<java.lang.String> parameter.
                                                   ^

2 errors
1 warning
:javadoc FAILED

Gradle文档缺乏具体信息:https://docs.gradle.org/current/dsl/org.gradle.api.tasks.javadoc.Javadoc.html

1个回答

17

问题在于您的模式是基于源目录路径的。

Javadoc 模式是与类的包名匹配的。

因此,您需要使用一个参照您需要排除的包的模式,例如:

exclude 'com/app/com4j/api/**'

2
如果生成的源代码类与主要源代码类具有相同的包,会发生什么? - Zhasulan Berdibekov
我在引用被排除的类的类中遇到了一个错误 error: cannot find symbol。在我的情况下,我试图在Javadoc中隐藏的类是在源代码中的。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接