Как сделать так, чтобы задача сборки gradle генерировала теневую банку _instead_ из "обычной" банки?
(это использует Gradle 2.4)
Для одного из моих проектов, разбитых на несколько подмодулей, я использую плагин shadow, который очень хорошо подходит для моих нужд; у него есть основной, и, как рекомендовано плагином README, я использую плагин приложения вместе с ним, чтобы основной класс генерировался в манифесте, все работает хорошо.
Теперь это проект плагина SonarQube, и я также использую (успешно!) Плагин Gradle Sonar Packagin. И что этот плагин делает, когда вы ./gradlew build
, генерируйте плагин сонара вместо "обычного" фляги.
Я хочу сделать то же самое для моего подпроекта здесь, за исключением того, что я хочу, чтобы он генерировал только плагин shadow jar вместо "обычного" плагина... Сейчас я генерирую оба, используя этот простой файл:
buildscript {
repositories {
jcenter();
}
dependencies {
classpath(group: "com.github.jengelman.gradle.plugins",
name:"shadow", version:"1.2.1");
}
}
apply(plugin: "application");
apply(plugin: "com.github.johnrengelman.shadow");
dependencies {
// whatever
}
mainClassName = //whatever
artifacts {
shadowJar;
}
// Here is the hack...
build.dependsOn(shadowJar);
Как мне изменить этот файл так, чтобы генерировался только теневой сосуд, а не обычный?
1 ответ
Вы можете отключить задачу jar, добавив следующие строки в ваш скрипт gradle:
// Disable the 'jar' task
jar.enabled = false
Таким образом, при выполнении скрипта gradle, он покажет
:jar Пропущенный
Если вы хотите настроить все подпроекты, то вы можете добавить следующее в свой корневой build.gradle
subprojects {
// Disable the 'jar' task
tasks.jar.enabled = false
}