为什么gradle jar用`build/libs`编写?

Ali*_*cia 12 gradle

根据Jar插件文档,输出目录由destinationDir属性控制:

  • 文件 destinationDir

    生成存档的目录.

    使用java插件默认: project.distsDir

查看Project类文档,提到了相同的属性:

java插件添加的属性

  • distsDir:生成TAR和ZIP存档的目录.
  • distsDirName:分发目录的名称.这相对于项目的构建目录进行了解释.

然后谷歌搜索我找到一个文件,指定他们的默认值:

  • 文件 distsDir(只读)

    生成TAR和ZIP存档的目录.

    使用java插件默认: ${project.buildDir}/${project.distsDirName}

  • distsDirName

    分发目录的名称.这相对于项目的构建目录进行了解释.

    使用java插件默认: 'distributions'

所有这些文档都指向相同的Gradle版本,与我安装的版本相匹配.

我在我的添加中build.gradle检查这些属性的实际值:

println("distsDirName = " + project.distsDirName)
println("distsDir = " + project.distsDir.toString())

jar {
    println("jar.destinationDir = " + destinationDir)
}
Run Code Online (Sandbox Code Playgroud)

最后,我运行./gradlew并检查输出:

distsDirName = distributions
distsDir = /home/ntrrgc/myProject/build/distributions
jar.destinationDir = /home/ntrrgc/myProject/build/libs
Run Code Online (Sandbox Code Playgroud)

为什么不jar.destinationDir尊重其记录的默认值?

Oll*_*lli 6

我认为,@ Alicia指出,目前Gradle Jar插件文档在File destinationDir的默认值中提供了错误的信息:

文件destinationDir

生成存档的目录.

使用java插件默认:

project.distsDir

其中distsDir的默认值是'build/distributions',可以在这里找到.

在我看来,它应该是

文件destinationDir

生成存档的目录.

使用java插件默认:

project.libsDir

其中libsDir的默认值是'build/libs',这里可以再次看到.

我为此打开了Gradle问题#1086.让我们看看,他们回答了什么.