我想将我的Java文档生成到我的项目根目录下的给定目录中,我知道destinationDir属性存在,但是如果我的build.gradle存在于我的项目根目录中,我如何使用它呢?我提供了一个下面的小图表:

/projectRoot
  /lib
    /build/docs/javaDocs <--- JavaDocs here by default
    build.gradle
  /docs <---- Need JavaDocs here 

看看gradle中JavaBean的文档,here.我知道存在destinationDir属性,所以我try 像提供的示例那样设置它.这没有产生预期的影响,而是什么也没有生成,或者它是不是在我的项目目录之外?

tasks.withType(Javadoc).configureEach {
    exclude ('com/nest/egg/**')
    options.addStringOption("charset", "utf-8")
    options.addStringOption("docencoding", "utf-8")
    options.addStringOption("encoding", "utf-8")
    destinationDir = reporting.file("docs") // Also tried "/docs", "docs/"
}

推荐答案

您需要将Java File对象传递给destinationDir,指定您想要的位置1.这样你就可以写下:

destinationDir = layout.projectDirectory.dir("..").dir("docs").asFile

在这里,你使用Gradle的ProjectLayout对象.每个dir()调用都会给你一个Gradle Directory,所以你必须最终调用asFile才能最终获得你需要的Java File对象.


1我不确定您呼叫reporting.file("docs")时使用的是什么对象,但ProjectLayout对象可以为您提供所需的所有信息.

Java相关问答推荐

JDK22执行repackage of goal org. springframework. boot:spring—boot—maven—plugin:3.2.3:repackage failed:unsupported class file major version 66—>

需要一个找不到的jakarta.sistence.EntityManager类型的Bean

Hibernate 6支持Joda DateTime吗?

Java记录的不同序列化/反序列化

我找不到&Quot;配置&的位置

在运行MVN测试时,为什么构建失败,并显示了java.lang.ClassNotFoundException:java.net.http.HttpResponse?

Spring Boot Maven包

使用Spring和ActiveMQ的侦听器方法引发属性名称不能重复为空警告

Spring @Value default无法计算表达式

在Java 17中使用两个十进制数字分析时间时出错,但在Java 8中成功

使用Class.this.field=Value初始化构造函数中的最后一个字段会产生错误,而使用this.field=Value则不会

AWS Java SDK v2.x中没有setObjectAcl方法

使用for循环时出现堆栈溢出错误,但如果使用if块执行相同的操作,则不会产生错误

具有最大共同前景像素的图像平移优化算法

IntelliJ IDEA中的JavaFX应用程序无法在资源中找到CSS文件

在Oracle中调用输出参数在索引处缺少IN或OUT参数的函数

本机方法(JNI)总是编译的吗?

JXBrowser是否支持加载Chrome扩展?

为什么创建Java动态代理需要接口参数

如何设计包含已知和未知键值对映射的Java类?