首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gradle未能应用插件FatJar

Gradle未能应用插件FatJar
EN

Stack Overflow用户
提问于 2014-09-27 00:03:28
回答 1查看 5.5K关注 0票数 0

我下载了一个使用Gradle的项目,解压缩它,在该目录中打开一个cmd提示符并运行gradle。我得到以下信息:

代码语言:javascript
复制
Y:\cuchaz-enigma-853f818ee7ac>gradle build
FAILURE: Build failed with an exception.
* Where:
Build file 'Y:\cuchaz-enigma-853f818ee7ac
\build.gradle' line: 16

* What went wrong:
A problem occurred evaluating root project 'cuchaz-enigma-853f818ee7ac'.
> Failed to apply plugin [id 'fatjar']
   > Could not find method add() for arguments [fatJarPrepareFiles, class eu.app
satori.gradle.fatjar.tasks.PrepareFiles] on task set.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output.
BUILD FAILED
Total time: 6.598 secs
Y:\cuchaz-enigma-853f818ee7ac>

下面是Build.Gradle:

代码语言:javascript
复制
buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath "eu.appsatori:gradle-fatjar-plugin:0.2-rc1"
        classpath "net.sf.proguard:proguard-gradle:5.0"
    }
}

apply plugin: "java"
apply plugin: "eclipse"
apply plugin: "maven"
apply plugin: "fatjar"

sourceCompatibility = 1.7
targetCompatibility = 1.7

group = "com.cuchazinteractive"
archivesBaseName = "enigma"
version = "0.5.1b"

sourceSets {
    main {
        java {
            srcDir "src"
        }
        resources {
            srcDir "conf"
        }
    }
    test {
        java {
            srcDir "test"
        }
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile fileTree( dir: "libs", include: "*.jar" )
    compile "de.sciss:jsyntaxpane:1.0.0"
    compile "com.google.guava:guava:17.0"
    compile "org.javassist:javassist:3.18.1-GA"

    testCompile "junit:junit:4.11"
    testCompile "org.hamcrest:hamcrest-all:1.3"
}

fatJar {
    from( "." ) {
        include( "*.txt" )
    }
    manifest {
        attributes(
            "Title": archivesBaseName,
            "Manifest-Version": "1.0",
            "Version": version,
            "Main-Class" : "cuchaz.enigma.Main"
        )
    }
}

task jarLoneClass( type: Jar ) {
    from( sourceSets.test.output ) {
        include( "cuchaz/enigma/inputs/Keep.class" )
        include( "cuchaz/enigma/inputs/loneClass/**" )
    }
    archiveName( "testLoneClass.jar" )
}

task jarInheritanceTree( type: Jar ) {
    from( sourceSets.test.output ) {
        include( "cuchaz/enigma/inputs/Keep.class" )
        include( "cuchaz/enigma/inputs/inheritanceTree/**" )
    }
    archiveName( "testInheritanceTree.jar" )
}

task jarConstructors( type: Jar ) {
    from( sourceSets.test.output ) {
        include( "cuchaz/enigma/inputs/Keep.class" )
        include( "cuchaz/enigma/inputs/constructors/**" )
    }
    archiveName( "testConstructors.jar" )
}

task jarInnerClasses( type: Jar ) {
    from( sourceSets.test.output ) {
        include( "cuchaz/enigma/inputs/Keep.class" )
        include( "cuchaz/enigma/inputs/innerClasses/**" )
    }
    archiveName( "testInnerClasses.jar" )
}

tasks.withType( proguard.gradle.ProGuardTask ) {
    libraryjars( "${System.getProperty('java.home')}/lib/rt.jar" )
    overloadaggressively
    repackageclasses
    allowaccessmodification
    dontoptimize
    dontshrink
    keep( "class cuchaz.enigma.inputs.Keep" )
}

task obfLoneClass( type: proguard.gradle.ProGuardTask, dependsOn: jarLoneClass ) {
    def name = "LoneClass"
    injars( "build/libs/test${name}.jar" )
    outjars( "build/libs/test${name}.obf.jar" )
}

task obfInheritanceTree( type: proguard.gradle.ProGuardTask, dependsOn: jarInheritanceTree ) {
    def name = "InheritanceTree"
    injars( "build/libs/test${name}.jar" )
    outjars( "build/libs/test${name}.obf.jar" )
}

task obfConstructors( type: proguard.gradle.ProGuardTask, dependsOn: jarConstructors ) {
    def name = "Constructors"
    injars( "build/libs/test${name}.jar" )
    outjars( "build/libs/test${name}.obf.jar" )
}

task obfInnerClasses( type: proguard.gradle.ProGuardTask, dependsOn: jarInnerClasses ) {
    def name = "InnerClasses"
    injars( "build/libs/test${name}.jar" )
    outjars( "build/libs/test${name}.obf.jar" )
}

task obfTestCases( dependsOn: tasks.withType( proguard.gradle.ProGuardTask ) )

我已经下载了Jar,把它放在Lib和Plugins中,确保这个文件也存在于我的Gradle Cache中,但是它仍然是错误的。有什么想法吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-27 13:51:41

看起来插件的标识符已经改变了。我还建议使用该插件的最新版本。请注意,版本0.3只在JCenter上可用,而在Maven Central中没有。

代码语言:javascript
复制
buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath "eu.appsatori:gradle-fatjar-plugin:0.3"
    }
}

apply plugin: 'eu.appsatori.fatjar'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26069956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档