Ссылаясь на основной класс подпроекта в многопроектной настройке gradle - PullRequest
0 голосов
/ 19 апреля 2019

Я работаю над многопроектной настройкой gradle, где структура выглядит следующим образом:

pipeline-jobs               // root folder
|-gradle.properties
|-settings.gradle
|-build.gradle
|
|-partition-by-users        // sub-project
  |-com.client.dataPipelineJobs.partitionByUsers
    |-PartitionByUsers.java // has the main() method
  |-build.gradle

pipe-jobs - корневая папка проекта, и на данный момент я 'Мы имеем только один подпроект под названием Разделение по пользователям .В будущем будет добавлено еще много подпроектов.Я хочу создать работающие фляги для всех этих подпроектов.Мой build.gradle файл в подпроекте partition-by-users выглядит следующим образом:

jar {
  zip64 = true
  manifest {
    attributes('Main-Class': 'com.client.dataPipelineJobs.partitionByUsers.PartitionByUsers')
  }
  from {
    configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
  }
}

Теперь из корневого каталога проекта, если я выполню gradle jar команда и затем запустить файл JAR, он выдает следующую ошибку:

Не удалось найти или загрузить основной класс com.client.dataPipelineJobs.partitionByUsers.PartitionByUsers

IЯ не могу выяснить причину этого.Что мне здесь не хватает?Я попытался изменить манифест с помощью attributes('Main-Class': partition-by-users.com.client.dataPipelineJobs.partitionByUsers.PartitionByUsers), но это не помогло.

Обновление: Я думаю, что есть некоторая проблема с созданием фляги.Построение фляги без зависимостей решит проблему, но, возможно, я найду другой способ приготовления фаст-фара.

1 Ответ

0 голосов
/ 19 апреля 2019

Я нашел ответ в этой ТАКОЙ теме.Кто бы ни сталкивался с этой страницей, пожалуйста, посмотрите ответ, предоставленный @blootsvoets в предыдущей ссылке.

Основная идея - использовать один и тот же манифест в задачах jar и fatJar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...