简体   繁体   English

如何从gradle javadoc任务中排除生成的文件?

[英]How to exclude generated files from gradle javadoc task?

I am generating some code in my gradle build through a 3rd party plugin. 我通过第三方插件在gradle构建中生成一些代码。 The generated codes javadoc is malformed. 生成的代码javadoc格式错误。

So i tried to exclude that path from gradles javadoc task but it does not work. 所以我试图从gradles javadoc任务中排除该路径,但它不起作用。 I looked through similar questions but none offers a helpful answer. 我查看了类似的问题,但没有一个提供有用的答案。

$> ./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

This is my build.gradle 这是我的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
}

Has no effect. 没有效果。

$> ./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

gradles documentation is lacking any specifics: https://docs.gradle.org/current/dsl/org.gradle.api.tasks.javadoc.Javadoc.html gradles文档缺少任何细节: https ://docs.gradle.org/current/dsl/org.gradle.api.tasks.javadoc.Javadoc.html

The problem is that your pattern refers to the path of the source directory. 问题是您的模式引用了源目录的路径。

Javadoc patterns are matched against the package of the classes. Javadoc模式与类的包匹配。

So you need instead to use a pattern that refers to the package(s) you need to exclude, something like: 所以你需要使用一个引用你需要排除的包的模式,例如:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM