为什么gradle JAR是用“build/libs”编写的?
根据,输出目录由为什么gradle JAR是用“build/libs”编写的?,gradle,Gradle,根据,输出目录由destinationDir属性控制: 文件destinationDir 生成存档文件的目录 java插件的默认值:project.distsDir 在同一个属性中,查看以下内容: 由java插件添加的属性 distsDir:生成TAR和ZIP归档文件的目录 distsDirName:分发目录的名称。这是相对于项目的生成目录进行解释的 通过谷歌搜索,我发现: 文件distsDir(只读) 要生成TAR和ZIP存档的目录 java插件的默认值:${project.buil
destinationDir
属性控制:
- 文件
生成存档文件的目录 java插件的默认值:destinationDir
project.distsDir
java
插件添加的属性
:生成TAR和ZIP归档文件的目录distsDir
:分发目录的名称。这是相对于项目的生成目录进行解释的distsDirName
- 文件
(只读) 要生成TAR和ZIP存档的目录 java插件的默认值:distsDir
${project.buildDir}/${project.distsDirName}
- 字符串
分发目录的名称。这是相对的 到项目的生成目录 java插件的默认值:distsDirName
'distributions'
build.gradle
中,以检查这些属性的真实值:
println("distsDirName = " + project.distsDirName)
println("distsDir = " + project.distsDir.toString())
jar {
println("jar.destinationDir = " + destinationDir)
}
最后,我运行/gradlew
并检查输出:
distsDirName = distributions
distsDir = /home/ntrrgc/myProject/build/distributions
jar.destinationDir = /home/ntrrgc/myProject/build/libs
为什么jar.destinationDir不尊重其记录的默认值?我认为,@Alicia正确地指出,当前在文件destinationDir的默认值中提供了错误的信息: 文件目的地 生成存档文件的目录 java插件的默认值: project.distsDir 其中,distsDir的默认值为“构建/分发” 在我看来,应该是这样 文件目的地 生成存档文件的目录 java插件的默认值: project.libsDir 如图所示,libsDir的默认值为“build/libs”
我已经为此打开了大门。让我们看看他们的答案。在我找到的源代码中搜索。另外,根据docs,
libsDir
是生成JAR和WAR归档文件的目录,而distsDir
用于TAR和ZIP文件。唯一矛盾的是Jar插件的文档,因为Gradle发行版不是Jar。通常这是一个包含任何文件的ZIP或TAR包。它可以是一堆罐子或其他任何东西。例如,请参阅应用程序
和发行版
插件文档。如果您想覆盖build/libs
使用libsDir
和libsDirName
。他们确认了这一点,因此我将此标记为正确答案:)