【发布时间】:2016-04-24 18:31:40
【问题描述】:
一般更新,经过一些研究
我想在控制台中使用gradle build 构建运行gradle 2.0 的项目,但我在JavaDoc 生成过程中遇到问题。
我正在使用 Java 8,确切地说是 jdk1.8.0_66 和 jre1.8.0_66。现在,当我想构建我的项目时,在我的 powershell 中输入 gradle build 我收到了这个错误:
5 errors
10 warnings
:my-subproject1:javadoc FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':my-subproject1:javadoc'.
> Javadoc generation failed.
一个示例错误和一个示例警告:
C:\some\long\path\MyClass.java:37: error: @param name not found
* @param appCode
^
C:\some\long\path\MyOtherClass.java:37: warning: no description for @param
* @param appCode
如果我在我的build.gradle 文件中使用tasks.findByPath(":my-subproject:javadoc").enabled = false 禁用我的一个子项目,我会在下一个子项目中遇到同样的错误。
研究表明,我并不孤单。 Java 8 似乎对 JavaDoc 非常严格。这是由于新的doclint for Javadoc。
发现于this site。它还为 Maven 和 Gradle 提供了解决方案。但对我来说它不起作用,另一个answer I got 也不起作用。我现在在我的build.gradle 中为这个子项目解决它的尝试看起来像这样:
//Solution by the second link
allprojects {
tasks.withType(Javadoc).all { enabled = false }
}
//Solution by the first link
if (JavaVersion.current().isJava8Compatible()) {
allprojects {
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}
}
}
dependencies{
compile project(':my-subproject1')
compile project(':my-subproject2')
compile project(':my-subproject3')
}
有谁知道如何解决这个问题或有其他解决方法吗?
编辑:
C:. | Root
├───build.gradle
│ └───2.0
│ └───taskArtifacts
├───buildSrc
│ ├───.gradle
│ │ ├───2.0
│ │ │ └───taskArtifacts
│ │ └───noVersion
│ │ └───buildSrc
│ ├───build
│ │ ├───classes
│ │ │ └───main
│ │ ├───dependency-cache
│ │ ├───libs
│ │ └───tmp
│ └───src
│ └───main
│ └───java
│ └───com
│ └───custom
│ └───gradle
│ └───util
├───my-subproject1
├───my-subproject2
├───my-subproject3
│ ├───my-sub-subproject
│ ├───my-current-directory | Magic happens here
│ │ ├───some.package.identifier
│ │ │ ├───.clover
│ │ │ ├───.settings
│ │ │ ├───bin
│ │ │ │ └───package
│ │ │ │ └───subpackage
│ │ │ └───buil.gradle | This should build my subproject
解决办法:放在根build.gradle文件中。
【问题讨论】:
标签: java gradle javadoc build.gradle