Я очень новичок в Gradle и основной причине, я использую его, потому что мне нужно решить проблемы с зависимостями для моего скомпилированного jar.Gradle Dependencies не включены в jar
Вот мой build.gradle
файл:
apply plugin: 'java'
apply plugin: 'eclipse'
version = '0.9'
jar {
manifest {
attributes 'Main-Class': 'wd.nlp.FileImport', 'Implementation-Title': 'WD\
NLP', 'Implementation-Version': version
}
}
repositories {
flatDir(dirs: 'lib')
}
dependencies{
compile 'mallet:mallet:2.0.7'
}
Мои файлы Java все зависит от библиотеки третьей стороны, которая называется Mallet
. Вот моя структура папок:
|---1.10
|-----taskArtifacts
|-build
|---classes
|-----main
|-------wd
|---------nlp
|---dependency-cache
|---libs
|---tmp
|-----jar
|-lib
|-src
|---main
|-----java
|-------wd
|---------nlp
|-----resources
Я поместил Mallet-2.0.7.jar
внутри lib
под верхней папке. Тогда я использовал gradle build
команду и попытаться запустить мой класс:
java -classpath build/libs/JavaClassifier-0.9.jar wd.nlp.FileImport -train ...
Тогда я сказал:
Exception in thread "main" java.lang.NoClassDefFoundError: cc/mallet/pipe/Pipe
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2531)
путь В Mallet
библиотеки является cc.mallet.*
... и теперь я не знаю, что делать ... пожалуйста, помогите!
Спасибо! Это привело меня к следующему шагу ... и я смог «запустить» его через Gradle. Ну, тогда это произошло: команда «Процесс» /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bin/java '' завершена с ненулевым значением выхода 1' Это о моей программе? Мой путь Java правильный. Я запускаю строку выше на моей консоли, и это местоположение команды 'java'. –
Если я забыл упомянуть ... мой основной класс программы принимает некоторые аргументы командной строки. –
Вы можете добавить аргументы, добавив 'run {args 'your', 'arguments'}' в ваш build.gradle – Aurel