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

时间:2016-12-24 00:29:28

标签: gradle

根据documentation of the Jar plugin,输出目录由destinationDir属性控制:

  
      
  • 档案 destinationDir

         

    生成存档的目录。

         

    默认使用java插件:project.distsDir

  •   

查看documentation of the Project class相同的属性:

  

java插件添加的属性

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

谷歌搜索了一下我发现a document specifying their defaults

  
      
  • 文件 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)
}

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

distsDirName = distributions
distsDir = /home/ntrrgc/myProject/build/distributions
jar.destinationDir = /home/ntrrgc/myProject/build/libs

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

1 个答案:

答案 0 :(得分:6)

我认为,@ Alicia指出当前documentation of the Gradle Jar plugin在File destinationDir的默认值中提供错误信息是正确的:

  

档案destinationDir

     

生成存档的目录。

     

默认使用java插件:

     

project.distsDir

其中distsDir的默认值为“build / distributions”,可以是here

在我看来,它应该是

  

档案destinationDir

     

生成存档的目录。

     

默认使用java插件:

     

project.libsDir

其中libsDir的默认值为'build / libs',可以看作here again

我为此打开了Gradle issue #1086。让我们看看,他们回答了什么。