当前位置: 首页 > 知识库问答 >
问题:

无法获取未知属性“runtime”Gradle 7.0

孙胜泫
2023-03-14

我切换到gradle 7.0最近,现在不能建立我的项目罐,与错误

无法获取类型为org的配置容器的未知属性“runtime”。格雷德尔。应用程序编程接口。内部的人工制品配置。DefaultConfigurationContainer`

这是我的build.gradle:


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



repositories {
    mavenCentral()
}

dependencies {

    implementation group: 'org.glassfish.jersey.containers', name: 'jersey-container-servlet-core', version: '2.7'
    implementation group: 'org.eclipse.jetty.aggregate', name: 'jetty-all', version: '9.3.0.M1'
//
    implementation 'javax.xml.bind:jaxb-api:2.3.0'
//    testImplementation group: 'junit', name: 'junit', version: '4.11'
    implementation group: 'org.json', name: 'json', version: '20200518'
    implementation group: 'com.jolbox', name: 'bonecp', version: '0.8.0.RELEASE'
    implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.22'
    implementation group: 'com.fasterxml.jackson.jaxrs', name: 'jackson-jaxrs-json-provider', version: '2.12.0'

    implementation "org.slf4j:slf4j-simple:1.7.9"
}

version = '1.0'

jar {
    manifest {
        attributes(
                'Main-Class': 'classes.RestServer',
        )
    }
}

task fatJar(type: Jar) {
    manifest.from jar.manifest
    classifier = 'all'
    from {
        configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
    } {
        exclude "META-INF/.SF"
        exclude "META-INF/.DSA"
        exclude "META-INF/*.RSA"
    }
    with jar
}

artifacts {
    archives fatJar
}

共有1个答案

锺离鸿
2023-03-14

Gradle在Gradle 6之后删除了运行时配置。十、

您可以在build.gradle中更改您的matJar任务,以引用runtimeConfigsion(按Java插件留档):

task fatJar(type: Jar) {
    manifest.from jar.manifest
    classifier = 'all'
    from {
        // change here: runtimeClasspath instead of runtime
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    } {
        exclude "META-INF/.SF"
        exclude "META-INF/.DSA"
        exclude "META-INF/*.RSA"
    }
    with jar
}

或者使用一个插件来为你处理胖罐子的构建。几年前我试过Shadow。这还应该考虑到不同JAR(如META-INF/LICENSE)中的同名文件,这些文件可能会在您的方法中遇到。

 类似资料:
  • 所以,昨天一切都很好,但现在Android Studio和我的项目抛出了这个错误: 我谷歌了很长时间,但还没有找到任何解决方案。我的项目没有任何单词“Assemble”(项目中的Ctrl+Shift+F)。 gradlew clean Build-StackTrace:

  • 我想读取build.gradle中local.properties中定义的属性(如本文所述),因此在根build.gradle文件中有以下内容: 在模块的build.gradle文件中,我有以下内容: 但同步后出现以下错误: 无法获取类型为com.android.build.gradle.internal.dsl.defaultconfig得defaultconfig得defaultconfig{

  • 我最近一直有这个问题,因为我到处搜索,也在这里堆栈,我看到了很多不同的答案。 有人知道如何解决这个问题吗? 错误:(46,0)无法为类型为com.android.build.gradle.internal.dsl.signingconfig的SigningConfig_Endaried{name=debug,storefile=C:\users\-shahab-\desktop\master\tm

  • 当运行android时,我对本机项目做出了反应,显示了这个错误 生成文件'C:\dev\icnet\u final\android\app\Build。格拉德尔线:213 评估项目“: app”时出现问题。 无法获取类型为org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer的配置容器的未知属性“

  • 我使用的正是处理依赖项的代码片段 我使用的版本:

  • 问题内容: 如果我有这样的JSON对象: 属性的名称(这里)每次都在变化,我怎么能仅仅通过JS 获得子属性?目前我有,但是现在我怎么能得到它的孩子呢? 问题答案: 如果它始终是的第一个属性,则可以执行以下操作: