首页 文章

Gradle:解析后无法更改配置':compile'的依赖关系

提问于
浏览
2

我正在使用带有Gradle支持插件1.3.8的Netbeans 8.0.2 .

我添加了一个生成超级Jar的任务,同时排除了一些签名文件,但是当我运行任务时,它在第38行显示错误( compile group 行),如下所示:

apply plugin: 'java'
apply plugin: 'application'

mainClassName = 'br.com.myproject.Sample'
sourceCompatibility = '1.8'
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
version='1.0.0'

// For DEBUG to work
ext.mainClass = mainClassName

task uniqueJar(type: Jar) {
    baseName = project.name

    from(configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }) {
        exclude "META-INF/*.SF"
        exclude "META-INF/*.DSA"
        exclude "META-INF/*.RSA"
    }

    manifest {
        attributes 'Implementation-Title': project.name,  
                'Implementation-Version': version,
                'Main-Class': mainClassName
    }
    with jar
}

repositories {
    mavenCentral()
    // You may define additional repositories, or even remove "mavenCentral()".
    // Read more about repositories here:
    //   http://www.gradle.org/docs/current/userguide/dependency_management.html#sec:repositories
}

dependencies {
    // https://mvnrepository.com/artifact/org.eclipse.paho/org.eclipse.paho.client.mqttv3
    compile group: 'org.eclipse.paho', name: 'org.eclipse.paho.client.mqttv3', version: '1.1.1' // line 38


    testCompile group: 'junit', name: 'junit', version: '4.10'
}

错误信息:

执行:gradle unique Jar参数:[uniqueJar,-c,D:\ NetBeansProjects \ testeMqtt \ settings.gradle] FAILURE:构建失败并出现异常 . 其中:构建文件'D:\ NetBeansProjects \ testeMqtt \ build.gradle'行:38出了什么问题:评估根项目'testeMqtt'时出现问题 . 解析后无法更改配置':compile'的依赖关系 . 尝试:使用--stacktrace选项运行以获取堆栈跟踪 . 使用--info或--debug选项运行以获取更多日志输出 . BUILD FAILED总时间:0.102秒

我该如何修复uber-Jar任务?

1 回答

  • 2

    使用Shadow gradle plugin解决了我的问题,用于生成uber-Jars:

    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'br.com.myproject.Sample'
    sourceCompatibility = '1.8'
    [compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
    version='1.0.0'
    
    // For DEBUG to work
    ext.mainClass = mainClassName
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.1'
        testCompile group: 'junit', name: 'junit', version: '4.10'
    }
    
    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.4'
        }
    }
    
    apply plugin: 'com.github.johnrengelman.shadow'
    

相关问题