Я создаю свое простое приложение java, которое имеет некоторые зависимости JAR. Сценарий сборки приведен ниже. Он строит отлично, если я использую команду, gradle mainjar
. Однако, если я использую gradle build
, сборка работает нормально, но я получаю ClassNotFoundException
при запуске, что указывает на то, что файлы JAR не были связаны должным образом.Простая java Application build on Gradle
Я понимаю строки, которые я написал под заданиями mainjar
, но как заставить их выполнять даже с обычной задачей build
.
apply plugin: 'java'
apply plugin:'application'
repositories {
mavenCentral()
}
sourceSets {
main {
java {
srcDir 'src'
}
}
mainjar
}
jar {
manifest { attributes 'Main-Class': 'in.co.madhur.wunderjava.Main' }
}
mainClassName = "in.co.madhur.wunderjava.Main"
task mainjar(type: Jar) {
from files(sourceSets.main.output.classesDir)
from files(sourceSets.main.output.resourcesDir)
from {configurations.compile.collect {zipTree(it)}}
manifest {
attributes 'Main-Class': 'in.co.madhur.wunderjava.Main'
}
}
dependencies {
compile 'com.fasterxml.jackson.core:jackson-core:2.3.0-rc1'
compile 'com.fasterxml.jackson.core:jackson-databind:2.3.0-rc1'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.3.0-rc1'
compile 'com.squareup.retrofit:retrofit:1.5.0'
}
dependencies {
runtime 'com.fasterxml.jackson.core:jackson-core:2.3.0-rc1'
runtime 'com.fasterxml.jackson.core:jackson-databind:2.3.0-rc1'
runtime 'com.fasterxml.jackson.core:jackson-annotations:2.3.0-rc1'
runtime 'com.squareup.retrofit:retrofit:1.5.0'
}
Спасибо за отличный ответ. Я принял –