用Gradle创建一个Groovy可执行文件JAR

用Gradle创建一个Groovy可执行文件JAR

这是我的毕业生脚本。

apply plugin: 'groovy'

project.group = "test.tree"
archivesBaseName = "tree"
project.version = "1.0"
manifest.mainAttributes("Main-Class" : "test.tree.App")

sourceCompatibility=1.6
targetCompatibility=1.6

repositories {
    mavenCentral()
}

dependencies {
    groovy group: 'org.codehaus.groovy', name: 'groovy', version: '1.8.6'
    testCompile group: 'junit', name: 'junit', version: '4.8.2'
}

而这个编译很好

问题是我无法运行创建的JAR,我得到一个异常java.lang.NoClassDefFoundError: groovy/lang/GroovyObject

所以我想这个groovy插件不包括JAR内的所有必要的类。

如何创建一个独立的JAR,我可以简单地运行;-)

采纳答案:

您正在寻找的是应用程序插件 ,它允许您构建独立的JVM应用程序,包括所有依赖关系和运行脚本。

apply plugin:'application'
mainClassName = 'test.tree.App'

编辑:

这应该创建你想要的uberjar:

task uberjar(type: Jar) {
    from files(sourceSets.main.output.classesDir)
    from configurations.runtime.asFileTree.files.collect { zipTree(it) }

    manifest {
        attributes 'Main-Class': 'test.tree.App'
    }
}

参考更多解答:用Gradle创建一个Groovy可执行文件JAR,转载请保留用Gradle创建一个Groovy可执行文件JAR

更多:gradle