Сборка Gradle не генерирует банку - PullRequest
1 голос
/ 20 сентября 2019

Я хотел бы построить свой проект в виде jar-файла, который содержит только мой код.Этот проект JAR используется в качестве библиотеки для другого проекта Java.

Вот мой build.gradle:

plugins {
    id 'java'
}

group 'com.my.lib'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

task sourcesJar(type: Jar) {
    archiveClassifier = 'sources'
    from sourceSets.main.allJava
}


dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

После того, как я собрал проект (я использую IntelliJ, я нажал «Build» ==> «Перестроить проект»).IntelliJ сказал мне построить успешно, но я не вижу ни одной созданной банки.Почему?

18:30:18: Executing tasks ':classes :testClasses'...

> Task :compileJava
> Task :processResources NO-SOURCE
> Task :classes
> Task :compileTestJava
> Task :processTestResources NO-SOURCE
> Task :testClasses

BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed
18:30:18: Tasks execution finished ':classes :testClasses'.

Ответы [ 3 ]

2 голосов
/ 23 сентября 2019

Форма "Build Project" IntelliJ IDEA скомпилирует ваш код для использования в IDE, он не связан напрямую с задачей жизненного цикла build Gradle.

Для Gradle для создания JAR вынужно запустить ./gradlew assemble, что даст ожидаемый результат.Обратите внимание, что это не будет запускать тесты или статический анализ.Если вы хотите, чтобы это также выполнялось, вы можете использовать ./gradlew build.

Обе эти задачи Gradle можно выполнить из окна инструмента Gradle в IntelliJ IDEA.

0 голосов
/ 23 сентября 2019

Я понял, что даже у меня есть эти настройки, когда я выбираю Build-> Build project, Intellij все еще не запускает сборку Gradle, поэтому в моем исходном вопросе нет показа "sourceJar".Мне нужно открыть окно «Gradle tool», щелкнуть по этой маленькой иконке слона, чтобы запустить задачу Gradle.Затем введите «Gradle build», затем запустите исходную задачу Jar.

0 голосов
/ 23 сентября 2019

Ваш журнал выше ничего не говорит о sourcesJar задаче, что означает, что она не была выполнена.В меню Параметры> Построение, Выполнение, Развертывание> Инструменты сборки> Инструменты сборки> Gradle можно рассмотреть две настройки:
Сборка и запуск с использованием Gradle
Запуск тестов с использованием Gradle.

Затем перейдите в окно инструмента Gradle в Idea, синхронизируйте ваш проект и найдите задачу в группе «Задачи».

enter image description here

Если вы намерены иметь одинаковое поведение для всех разработчиков в проекте, вам, вероятно, следует придерживаться Gradle, а не использовать настройку Idea Artifacts для создания файлов JAR.

...