Gradle不会生成Javadoc

时间:2014-01-18 20:08:51

标签: java gradle javadoc

我正在使用Gradle编写构建文件来执行Java构建操作。但是,Gradle不会为我的项目生成Javadoc。根据Gradle.org的文档,要在Gradle中实现Javadocs任务,必须指定源和类路径。

apply plugin: 'java'

javadoc {
source = sourceSets.main.allJava
classpath = configurations.compile
}

但是,当我运行命令gradle javadocgradle build时,永远不会创建javadocs(build \ docs)的默认文件夹,因此不会为项目生成html文件。我该怎么做才能解决这个问题?

5 个答案:

答案 0 :(得分:2)

好像您的目录结构不是标准src/main/java。如果是这种情况,那么您需要将include模式指定为include闭包的一部分,如下所示:

javadoc {
source = sourceSets.main.allJava
classpath = configurations.compile
}
include **/your/directory/structure/*

答案 1 :(得分:0)

由于各种原因,我们在gradle中为java项目创建了一个自定义类路径。主要是因为我们希望将依赖项分解为运行时提供的那些不依赖项。

所以我们像这样设置build.gradle

configurations {
  providedCompile
}

dependencies {

  providedCompile  'provided1', 'provided2

  providedCompile  'provided3'

  compile 'compile1'
  compile ('compile2')   
  { 
        exclude group: 'unwanted part'
  }

}
sourceSets.main.compileClasspath += configurations.providedCompile
javadoc.classpath += configurations.providedCompile
sourceSets.test.compileClasspath += configurations.providedCompile
sourceSets.test.runtimeClasspath += configurations.providedCompile

我们需要添加最后一部分,以便gradle正确地选择用于遵守,测试和运行javadoc的类路径。

答案 2 :(得分:0)

您可以编写Javadoc类型的gradle任务来创建这样的javadoc:

CALL apoc.index.search("cat", "Category.name:fashion") YIELD node AS catg

要创建Javadoc,只需运行此任务。

答案 3 :(得分:0)

如果包含关闭不起作用,则添加 sourceSet 闭包, srcDir 指向模块/ java目录。

以下示例适合我。这里的java目录是src / main / java ,我有我所有的包裹。

sourceSets {
    build {
        java.srcDir file('src/integrationTest/java')
    }
}

javadoc {
    source = sourceSets.main.allJava
    classpath = configurations.compile
}

运行$ gradle javadoc

答案 4 :(得分:0)

只需为答案添加更多结构,这些就是生成Javadoc所需的配置(使用 Gradle版本4和5 )。

1。定义您的sourceSet (如果使用标准Maven目录结构,则可能是可选的)。假设此目录结构为:

├── src
│   └── main
│       ├── java
├── src
│   └── test
│       ├── java

像这样定义sourceSet

sourceSets {
    main {
        java {
               srcDirs =['src/main/java']
    }
    test {
        java {
               srcDirs =['src/test/java']
    }
}

2。配置生成javadoc时要使用的classpath 。如果不这样做,将导致类似以下错误:error: package org.xxxx不存在。

假设您的依赖项定义如下:

dependency {
   compile group: 'xxxx', name: 'yyyy', version: 'zzzz'
   testCompile group: 'aaaa', name: 'bbbb', version: 'cccc'
}

以这种方式定义javadoc任务

tasks.withType(Javadoc){
source = sourceSet.main.java.srcDirs
classpath +=configuration.compile
destinationDir = reporting.file("myJavaDoc") //optional
}

如果要生成Java文档进行测试,任务将如下所示:

tasks.withType(Javadoc){
source = sourceSet.test.java.srcDirs
classpath +=configuration.compile
classpath +=configuration.testCompile
destinationDir = reporting.file("myJavaDoc") //optional
}