Корда - почему deployNodes выводит бесполезный JAR? - PullRequest
0 голосов
/ 27 апреля 2018

Я выполняю это в Windows, поэтому некоторые из этих операций могут отличаться для пользователей Linux / Mac.

Шаги для воспроизведения

Шаг 1: Клонировать шаблон Corda V3 Kotlin в новую папку

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

Шаг 2: очистка и развертывание узлов с помощью gradle

./gradlew clean dN

выход

Этот образ иллюстрирует файлы JAR, которые были собраны и развернуты в папке cordapp для узла

enter image description here

Вопросы

  1. Почему deployNodes производит MyFirstCorDapp-0.1.jar? Этот файл не кажется необходимым.
  2. Почему cordapp-contracts-states-0.1.jar такой большой? Учитывая, что это был скомпилирован прямо из шаблона kotlin без изменений, я бы ожидайте, что это будет намного меньше.

1 Ответ

0 голосов
/ 27 апреля 2018

Причина появления MyFirstCordapp-0.1.jar заключается в следующей строке:

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

В корневом проекте есть плагин 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 является "таким большим" (775 КБ), заключается в том, что плагин corda gradle содержит в себе некоторые зависимости.

...