У меня есть проект Java, который я пытаюсь создать, я недавно перешел в gradle, чтобы быстрее и проще управлять зависимостями.Gradle build не добавляя все «частные» библиотеки
Я пытаюсь использовать gradle build
, с этим результатом:
C:\whatever\>gradle build
:compileJava
:processResources UP-TO-DATE
:classes
:jar
:startScripts
:distTar
:distZip
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build
BUILD SUCCESSFUL
Total time: 1.75 secs
библиотека, которая дает мне проблемы, это один, что я локально добавил так:
repositories {
flatDir {
dirs 'libraries'
}
}
dependencies {
compile name: 'jfxwrapper'
}
Это не является только библиотека, которую я добавляю в проект, но это единственный, который я создал сам.
Когда я исполняю gradle build
(или gradlew build
, кажется, работает точно так же), это дает мне .jar в build/libs/*.jar
, а затем я пытаюсь выполнить этот .jar он бросает это исключение:
Вызванный: java.lang.ClassNotFoundException: jfxwrapper.JFXWrapperScene
JFXWrapperScene класс внутри jfxwrapper.jar
. Я использовал эту библиотеку, прежде чем добавлять ее в путь проекта eclipse, и она работает нормально, но по какой-то причине, похоже, град не может ее найти.
Любое объяснение? Любая идея, почему это происходит и как это исправить?
Благодарим за терпение.
Обновление: я узнал, что проблема заключалась в том, что я не добавлял библиотеки к .jar, этот кусок кода добавляет все ссылки библиотеки в .jar:
task fatJar(type: Jar) {
manifest {
attributes 'Implementation-Title': 'MyTitle',
'Implementation-Version': '1.1.1',
'Main-Class': 'Main'
}
baseName = project.name + '-all'
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
}
Это добавляет все зависимости с помощью gradle fatJar
, но проект до сих пор не работает, теперь он говорит:
Исключение в методе запуска приложения
Я знаю, что у меня нет исключения в методе start, потому что я могу запустить тот же код, если я его экспортирую с помощью Eclipse.
Любые предложения? Я начинаю полагать, что переход на градлу был большой ошибкой, мне, возможно, придется продолжать экспорт с помощью Eclipse, это не так круто или быстро, но это работает.