Когда я создаю приложение с пружинной загрузкой (в отдельную банку) с использованием gradle build
, генерируются соответствующие артефакты. Получающаяся банка содержит все зависимые баночки и является исполняемой.Gradle maven-publish не создает автономное приложение весенней загрузки
Я также настроил Maven опубликовать плагин следующим образом:
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
Теперь, когда я исполняю gradle publish
, гораздо меньше, баночка без зависимостей получает строить и опубликованы.
Следующие шаги не выполняются в последнем случае.
:myProject:bootRepackage
:myProject:assemble
Как я могу убедиться, что правильные шаги сборки выполняются при публикации?
Причина в том, что плагин Java просто добавляет результат 'jar' задачи к сбору компонентов. Плагин Spring Boot будет обязан изменить это, чтобы быть перепутанной банкой. Тем не менее, можно утверждать, что то, что публикуется на самом деле, должно быть просто простой баночкой, и что переупаковка банки, вероятно, должна быть опубликована под уникальным классификатором. –
Это хорошее предложение, спасибо. Вместо того, чтобы рассматривать переупакованную банку как отдельный артефакт, Spring Boot в настоящее время преобразует выходные данные из задачи jar. Теперь я задаюсь вопросом, следует ли также изменить это, чтобы как исходный артефакт, так и переупакованный артефакт можно было ссылаться в сборке Gradle. Я открыл https://github.com/spring-projects/spring-boot/issues/1666. –
Назначение классификатора на упакованном банке [уже поддерживается] (http://docs.spring.io/spring-boot/docs/1.1.7.RELEASE/reference/htmlsingle/#build-tool-plugins-gradle-repackage -конфигурация). Просто добавьте 'bootRepackage {classifier = 'boot'}. –