基于Gradle的简单java应用程序构建
我正在构建具有一些JAR依赖项的简单java应用程序。构建脚本如下所示。如果我使用命令,基于Gradle的简单java应用程序构建,java,gradle,Java,Gradle,我正在构建具有一些JAR依赖项的简单java应用程序。构建脚本如下所示。如果我使用命令,gradlemainjar,它构建得很好。但是,如果我使用gradlebuild,构建工作正常,但运行时我得到ClassNotFoundException,这表明JAR文件链接不正确 我理解我在mainjartasks下写的行,但是如何使它们即使在正常的buildtask下也能执行呢 apply plugin: 'java' apply plugin:'application' repositories
gradlemainjar
,它构建得很好。但是,如果我使用gradlebuild
,构建工作正常,但运行时我得到ClassNotFoundException
,这表明JAR文件链接不正确
我理解我在mainjar
tasks下写的行,但是如何使它们即使在正常的build
task下也能执行呢
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'
}
尝试添加
build.dependsOn mainjar
在文件末尾尝试添加
build.dependsOn mainjar
在文件末尾,
应用程序
插件使用由Jar
任务构建的Jar,而不是由mainjar
任务构建的Jar。因此,task mainjar(type:Jar){
行应该替换为Jar{
。此外,不必重复runtime
下的compile
依赖项,而configurations.compile.collect{zipTree(it)}
应该是configurations.runtime.collect{zipTree(it)}
。(一旦你有了runtime
依赖项,而这些依赖项又不是compile
依赖项,这将开始产生影响。)应用程序插件使用由Jar
任务构建的Jar,而不是由mainjar
任务构建的Jar{
应替换为jar{
。此外,无需重复runtime
下的compile
依赖项,并且configurations.compile.collect{zipTree(it)}
应为configurations.runtime.collect{zipTree(it)}
。(一旦您有了不属于编译依赖项的运行时
依赖项,这将开始产生影响。)