Создание JAR, содержащего classpath из пользовательского источника Gradle - PullRequest
0 голосов
/ 05 июля 2019

У меня есть мультипроект, и мне нужно иметь возможность запустить класс из определенного подпроекта, используя gradle . Я попытался просто настроить свой пользовательский sourceSets и запустить задачу типа JavaExec , но столкнулся с довольно специфической проблемой. Проблема в том, что в моей пользовательской исходной папке слишком много Java-файлов, и в результате путь к классу, который пытается создать задача JavaExec (с абсолютным путем к каждому отдельному классу java), слишком длинный для Команда cmd , которую JavaExec пытается вызвать.

Я нашел обходной путь, который предлагает создать файл jar со всеми файлами .java и просто передать его как classpath моему JavaExec задача. Таким образом, команда остается красивой и короткой. Я сделал задание, которое должно это сделать, но оно не работает.

Вот мой пользовательский sourceSets :

sourceSets {
mySourceSet{
    java {
        srcDirs {
            'projectOne/src/main/java/'

  }}}}

Вот моя задача, которая должна создать банку , но это не так:

task launcherJar(type: Jar) {
manifest {
    attributes "Class-Path": sourceSets.mySourceSet.java.srcDirs.join(" ")}}

Вот моя задача javaExec, которая должна использовать файл .jar:

task task1(type: JavaExec) {
classpath = launcherJar.outputs.files
main = "com.package1.MyClass"

}

Проблема в том, что jar файл пуст.

Я пробовал разные вещи со свойством " manifest ", но, похоже, ничего не работает.

Мне нужно, чтобы файл jar содержал путь к классам, чтобы я мог использовать его в JavaExec .

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...