当前位置: 首页 > 知识库问答 >
问题:

Gradle不生成Javadocs

贝研
2023-03-14

我正在用Gradle编写一个构建文件来执行Java构建操作。然而,Gradle并没有为我的项目生成Javadocs。格拉德尔说。org的文档,要在Gradle中实现Javadocs任务,必须指定源和类路径。

apply plugin: 'java'

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

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

共有3个答案

宇文弘懿
2023-03-14

出于各种原因,我们在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。

阎成天
2023-03-14

您可以编写Javadoc类型的gradle任务来创建如下Javadoc:

 task createJavadocs (type: Javadoc)
      {
            source = project.android.sourceSets.main.java.srcDirs
            options.linkSource true
            classpath += project.files(project.android.getBootClasspath().join(File.pathSeparator))
            failOnError false
      }

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

晁璞
2023-03-14

看起来您的目录结构不是标准的src/main/java。如果是这样,那么您需要指定包含模式作为包含闭包的一部分,如下所示:

javadoc {
source = sourceSets.main.allJava
classpath = configurations.compile
}
include **/your/directory/structure/*
 类似资料:
  • 关于警告: 我尝试在不使用的情况下构建它。它构建了相同的

  • 我正在为unity开发一个android插件,需要生成一个jar文件。为此,我遵循https://stackoverflow.com/a/20446513/3742608中的步骤,将构建变体设置为release,重建项目并执行MakeJar。然而,我的项目确实有gradle只在另一个文件夹“中间”中使用的文件夹: 我将一些内容更改为以下内容,但没关系,不会生成jar文件。 bundles/rele

  • 我采用的方法的另一个问题是,它收集所有构建变体的类路径,而不是选择一个。

  • 我正在尝试将QueryDSL、Gradle和Springboot集成到title的版本中。我将annotationProcessors添加到gradle中,但Intellij仍然没有生成QClasses。我尝试了社区的建议来使用插件“gradle”。插件。通用域名格式。埃沃克。格拉德尔。插件:querydsl plugin'但这没有帮助。

  • 我在项目中使用声明性服务注释和gradle。 我已经在我的组件类中指定了相应的注释(@组件等)。我还在gradle文件中添加了felix scr注释项目的依赖项。但是,当我构建项目时,组件xml文件不会生成,清单中的Service-Component标头也不会生成。MF文件。 我在gradle中使用“osgi”插件来生成osgi包。 gradle提供这种支持吗?在maven中,可以使用maven

  • Gradle版本:5.1 Java版本:11 我在gradle文件中定义了以下任务来生成QueryDSL类: 下面是我的依赖项块: 如果我执行'gradlew generateQClasses,我会在日志中看到以下内容: 它失败,错误是文件已经存在。如何配置此任务以覆盖文件(如果存在)? 此外,上面的配置是根项目的配置,它有5个子项目。能够覆盖其中一个子项目中的文件,但不能覆盖其他子项目中的文件(