Corda-为什么部署节点输出一个无用的JAR?

Corda-为什么部署节点输出一个无用的JAR?,corda,Corda,我在Windows上执行此操作,因此对于Linux/Mac用户,其中一些操作可能会有所不同 复制步骤 步骤1:将克隆到新文件夹中 git克隆https://github.com/corda/cordapp-template-kotlin.git MyFirstCorDapp 步骤2:使用gradle清理和部署节点 /gradlew clean dN 输出 此图显示了为节点构建并部署到cordapp文件夹中的JAR文件 问题 为什么deployNodes会产生MyFirstCorDapp-0.1

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

复制步骤 步骤1:将克隆到新文件夹中

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

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

/gradlew clean dN

输出 此图显示了为节点构建并部署到cordapp文件夹中的JAR文件

问题
  • 为什么
    deployNodes
    会产生
    MyFirstCorDapp-0.1.jar
    ?这个文件 似乎没有必要
  • 为什么
    cordapp-contracts-states-0.1.jar
    这么大?鉴于 直接从kotlin模板编译而来,没有任何更改,我认为 预计会小得多

  • MyFirstCordapp-0.1.jar之所以出现,是因为这一行:

    task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
    
    根项目有一个kotlin插件,因此创建一个jar,以便部署节点部署它

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

    task deployNodes(type: net.corda.plugins.Cordform) {
        subprojects.each { subproject ->
            dependsOn(
                    subproject.tasks.matching { task ->
                        (task.name == 'jar')
                    }
            )
        }
    
    cordapp-contracts-states-0.1.jar之所以“如此之大”(775 KB),是因为cordagradle插件包含了一些依赖项