Corda - 为什么deployNodes输出无用的JAR?

时间:2018-04-27 12:57:12

标签: corda

我在Windows上执行此操作,因此对于Linux / Mac用户,其中一些操作可能会有所不同。

重现步骤

第1步:Corda V3 Kotlin template克隆到新文件夹

git clone https://github.com/corda/cordapp-template-kotlin.git MyFirstCorDapp

第2步:使用gradle清理和部署节点

./gradlew clean dN

输出

此图片说明了已构建并部署到节点的cordapp文件夹中的JAR文件

enter image description here

问题

  1. 为什么deployNodes会产生MyFirstCorDapp-0.1.jar?这个文件 似乎没必要。
  2. 为什么cordapp-contracts-states-0.1.jar如此之大?鉴于此 我直接从kotlin模板编译而没有任何变化 期望这个更小。

1 个答案:

答案 0 :(得分:4)

出现MyFirstCordapp-0.1.jar的原因是因为这一行:

task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {

root项目有一个kotlin插件,所以创建一个jar,以便deployNodes部署它。

一种解决方案是使用子项目闭包来跳过根项目

task deployNodes(type: net.corda.plugins.Cordform) {
    subprojects.each { subproject ->
        dependsOn(
                subproject.tasks.matching { task ->
                    (task.name == 'jar')
                }
        )
    }

cordapp-contract-states-0.1.jar之所以如此之大,以及#34; (775 KB)是因为corda gradle插件包含了一些依赖项。