Здесь я делаю несколько предположений, поскольку вы не опубликовали результаты работы Gradle.
Задача build
- это обычная задача Gradle, которая сама по себе ничего не делает. Вместо этого это зависит от других задач. Если вы создаете свое собственное пользовательское задание и хотите включить его при выполнении build
, вы должны добавить к нему зависимость. Если это не проблема, и вы действительно сделали это, пожалуйста, дайте более подробную информацию о том, что делает его «неработающим» при запуске build
.
Если вы хотите протестировать свою задачу изолированно (например, чтобы убедиться, что он работает правильно, без запуска модульных тестов или чего-либо еще, что не имеет отношения к делу), просто запустите gradlew cleanBuildDist buildDist
.
Примечание об операторе 'print' - он выполняет выполнение конфигурации этап, но это не значит, что вы можете использовать его для проверки, действительно ли задача действительно выполняется. Фактически, он, скорее всего, напечатает независимо от того, какую задачу вы выполняете. Если вы хотите напечатать что-то во время выполнения, вам нужно будет поместить это в блок doLast
.
Также есть несколько других вещей, которые вы должны изменить:
- Не рекомендуется использовать относительные ссылки. Вместо этого используйте свойство
buildDir
, чтобы получить абсолютную ссылку на каталог сборки. - Не используйте устаревшие методы, такие как
archiveName
и destinationDir
. Вместо этого используйте archiveFileName
и destinationDirectory
. - Свойство
extension
также не рекомендуется, но оно игнорируется, если вы задаете полное имя архива самостоятельно. Так что просто удали это. Это также означает, что у вас отсутствует расширение полного имени. from
и include
немного хрупки. Просто используйте from jar.archivePath
, если вы хотите сжать jar приложения.
Пример:
task buildDist(type: Tar, dependsOn: jar) {
archiveFileName = "${jar.baseName}-${version}.tar.gz"
destinationDirectory = file("$buildDir/dist")
compression = Compression.GZIP
from jar.archivePath
}
build.dependsOn buildDist
Наконец, если вы хотите создать дистрибутив вашего приложения,запускается самостоятельно (со всеми необходимыми зависимостями), вам следует рассмотреть возможность использования дистрибутива * плагина и, возможно, также приложения плагина .