Создание JAR-файла исходников в Gradle для IntelliJ IDEA
Быстрый ответ
Чтобы создать JAR-файл с исходниками в Gradle, определите задачу sourcesJar
вот так:
task sourcesJar(type: Jar, dependsOn: classes) {
classifier 'sources'
from sourceSets.main.allJava
}
Далее, для того, чтобы включить эту задачу в сборку Gradle, добавьте следующее:
artifacts {
archives sourcesJar
}
Тогда Gradle соберёт файлы формата .java
в JAR-файл с обозначением sources
, который будет потом включен в артефакты вашего проекта.
Расширенные возможности начиная с Gradle 6.0+
С версии 6.0 Gradle предоставляет в java_library плагине возможность упрощённой настройки для быстрого выполнения задачи:
java {
withJavadocJar()
withSourcesJar()
}
Для автоматизации создания Javadoc и JAR с исходными кодами используйте конфигурацию плагина:
plugins {
`java-library`
}
Детальные настройки
Установка зависимостей задачи
Не забывайте о зависимостях вашего JAR с исходниками. Укажите, какие задачи следует выполнить до его сборки:
task sourcesJar(type: Jar, dependsOn: [compileJava, processResources]) {
archiveClassifier.set('sources')
from sourceSets.main.allSource
}
Таким образом compileJava
и processResources
гарантированно выполнятся перед созданием sourcesJar
.
Исключение определённых файлов
Если вам нужно исключить некоторые .java
файлы из JAR, используйте параметр exclude
:
task sourcesJar(type: Jar) {
exclude 'path/to/exclude/**'
from sourceSets.main.allJava
classifier 'sources'
}
Настройка classpath для Javadoc
Для корректного доступа к зависимостям в задаче создания Javadoc, установите classpath в этом формате:
javadoc.classpath += configurations.compile
Визуализация
Создание JAR-файла с исходными кодами можно аналогично сравнить с приготовлением обеда на день:
// Шаг 1: Выбираем содержимое – всё, что следует упаковать
task('sourceJar', type: Jar) {
from sourceSets.main.allSource // 🥪🍏 (Ваши файлы)
}
// Шаг 2: Маркируем коробку для обеда – задаём имя JAR-файлу
sourceJar.archiveClassifier.set('sources') // 🏷️ 'sources'
// Шаг 3: Упаковываем обед – собираем JAR
artifacts {
archives sourceJar // 🍱✅ (Обед готов!)
}
Просто следуйте этим шагам, и ваши исходные коды будут аккуратно упакованы, точно так же как ваш обеденный ланч-бокс! 🍱✅
Тестирование собранного JAR-архива с исходными кодами
Для проверки JAR-файла с исходниками, откройте его в среде разработки, например, в IntelliJ IDEA:
1. Откройте 'Project Structure' в IntelliJ IDEA.
2. Найдите свой проект в разделе 'Libraries'.
3. Добавьте JAR-файл `sources` и начните отладку.
Специфические настройки проекта
Если в проекте есть спецтребования, добавьте конфигурацию, как показано здесь:
task sourcesJar(type: Jar) {
from sourceSets.main.allJava
classifier 'sources'
if (project.hasProperty('specialCase')) {
from 'special/case/path' // "Добавляем специальный компонент!"
}
}
Решение возможных проблем
В случае возникновения ошибок, проверьте правильность указания classpath и имени архива, также убедитесь в наличии всех необходимых исходников:
task sourcesJar(type: Jar) {
// ...
doFirst {
assert sourceSets.main.allJava.files.size() > 0 // "Внимание! Папка с исходниками пуста!"
}
}
Полезные материалы
- The Java Plugin — официальный гайд по работе с Java проектами в Gradle.
- Jar – Gradle DSL Version 8.6 — настройки для задачи Jar в Gradle.
- Getting started with Build Scan — инструмент для анализа и диагностики сборок Gradle.
- How to download dependencies in gradle – Stack Overflow — обсуждение управления зависимостями в сообществе разработчиков.
- Structuring Projects with Gradle — руководство по структурированию многопроектных сборок.
- Building Java Libraries — пример создания Java библиотек для лучшего понимания.
- Maven Publish Plugin — публикация Java артефактов в Maven репозиториях.