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

Gradle 7.5无法生成具有编译配置问题的项目

班景龙
2023-03-14

我有一个项目,它是用gradle 6或更旧的版本构建的。

我检查了gradle 7中关于编译/测试编译问题的其他stakeoverflow讨论,并将所有依赖项从编译/测试编译更改为api/测试实现。

但当我做gradle build时,它仍然不起作用。

它仍然返回名为“compile”的配置

我检查过这个:

  1. 使用gradle构建错误找不到方法testCompile()
  2. Gradle中的实现、api和编译有什么区别?

这是我的根梯度配置:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        // https://github.com/google/protobuf-gradle-plugin
        classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.10'
    }
}

plugins {
    id 'application'
    id 'java'
    id 'java-library'
    id "com.google.protobuf" version "0.8.10"
}

group 'com.ght'
version '61'

mainClassName = 'com.application'
sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    // jcenter() is no longer support.
//    jcenter()
    mavenCentral()
}

sourceSets {
    main {
        proto {
            srcDir 'src/main/protobuf'
            include '**/*.protodevel'
        }
    }
}

dependencies {
    testImplementation group: 'junit', name: 'junit', version: '4.12'

    implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.0.0'

    // https://mvnrepository.com/artifact/ch.qos.logback/logback-classic
    implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.1.3'

    // https://mvnrepository.com/artifact/ch.qos.logback/logback-core
    implementation group: 'ch.qos.logback', name: 'logback-core', version: '1.1.3'

    // https://mvnrepository.com/artifact/org.slf4j/slf4j-implementation
    implementation group: 'org.slf4j', name: 'slf4j-implementation', version: '1.7.26'

    // https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
    implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.2.1'

    // https://mvnrepository.com/artifact/org.locationtech.jts/jts-core
    implementation group: 'org.locationtech.jts', name: 'jts-core', version: '1.16.0'

    // https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
    implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.4'

    // https://mvnrepository.com/artifact/com.vividsolutions/jts
    implementation group: 'com.vividsolutions', name: 'jts', version: '1.13'

    // https://mvnrepository.com/artifact/com.google.guava/guava
    implementation group: 'com.google.guava', name: 'guava', version: '19.0'

    // https://mvnrepository.com/artifact/org.apache.commons/commons-math3
    implementation group: 'org.apache.commons', name: 'commons-math3', version: '3.5'

    // https://mvnrepository.com/artifact/commons-logging/commons-logging
    implementation group: 'commons-logging', name: 'commons-logging', version: '1.2'

}

protobuf {
    // Configure the protoc executable
    protoc {
        // Download from repositories
        artifact = 'com.google.protobuf:protoc:3.0.0'
    }
    generatedFilesBaseDir = "$projectDir/gen"
}

clean {
    delete protobuf.generatedFilesBaseDir
}

jar{

    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }

    manifest {
        attributes('Manifest-Version': archiveVersion, 'Main-Class': 'com.application')
    }

    exclude 'logback-test.xml'
    exclude '**/schema/**'
    exclude '**.proto'


}

以下是生成错误消息:

A problem occurred configuring root project 'application'.
> Configuration with name 'compile' not found.

* Try:
> Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.ProjectConfigurationException: A problem occurred configuring root project 'application'.
at org.gradle.configuration.project.LifecycleProjectEvaluator.wrapException(LifecycleProjectEvaluator.java:84)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:77)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.access$400(LifecycleProjectEvaluator.java:55)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate.run(LifecycleProjectEvaluator.java:255)
.
.
.
Caused by: org.gradle.api.artifacts.UnknownConfigurationException: Configuration with name 'compile' not found.
    at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.createNotFoundException(DefaultConfigurationContainer.java:108)
    at org.gradle.api.internal.DefaultNamedDomainObjectCollection.getByName(DefaultNamedDomainObjectCollection.java:333)
    at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:98)
    at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:50)
.
.
.
at com.google.protobuf.gradle.ProtobufPlugin$_setupExtractIncludeProtosTask_closure21.doCall(ProtobufPlugin.groovy:369)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.util.internal.ClosureBackedAction.execute(ClosureBackedAction.java:73)
    at org.gradle.util.internal.ConfigureUtil.configureTarget(ConfigureUtil.java:155)
    at org.gradle.util.internal.ConfigureUtil.configureSelf(ConfigureUtil.java:131)
    at org.gradle.api.internal.AbstractTask.configure(AbstractTask.java:666)
    at org.gradle.api.DefaultTask.configure(DefaultTask.java:309)
.
.
.


gradle版本:gradle 7.5

gradle JVM版本:GraalVM版本17.0.3

IDE:intellij IDE 2022.1.3

谢谢你的任何帮助。

共有1个答案

孙渝
2023-03-14

您使用的是Prothbuf Gradle插件版本过低。版本0.8.10(2019)早于Gradle 7(2021)。您面临的问题可能会通过升级插件来解决。

plugins {
  id "com.google.protobuf" version "0.8.19"
}
 类似资料:
  • 我使用了Jooq官方网站上的这个工具:https://github.com/etiennestuder/gradle-jooq-plugin从我的数据库生成代码。 但如果我设置

  • 我目前在编译protobuf生成的C代码时遇到了一些问题<代码>协议(code>protoc)运行正常,不会显示任何警告,但是,当我尝试编译生成的C代码以便构建静态库时,g向我显示以下消息: CanInfo。pb。抄送:107:5:错误:“::protobuf\u BusType\u 2eproto”尚未声明107;::protobuf\u BusType\u 2eproto::AddDescri

  • 我希望能够自动设置我们的eclipse项目来忽略使用m2e的可选编译问题,但是我似乎遇到了m2e和maven的冲突。 如果我使用build helper maven插件添加源目录,那就太好了——我不必自动将

  • 当我尝试运行应用程序时,它工作正常。但是当我构建签名apk时,出现了错误 失败:构建失败,出现异常。 问题:任务“:app:lintVitalRelease”的执行失败 无法解析配置“:image_picker_android:调试单元测试运行时类路径”的所有项目。无法转换 bcprov-jdk15on-1.68.jar (org.bouncycastle:bcprov-jdk15on:1.68)

  • 我们试图从Jenkins构建一个maven工件并将其部署到我们的Nexus存储库管理器中,但是我们在构建过程中遇到了编译错误。这就是我们得到的错误! 错误]无法执行目标org.apache.maven.plugins:maven-compiler-plugin:3.5.1:在项目上编译(default-compile)studentapp:编译失败错误]此环境中没有提供编译器。您可能是在JRE上运

  • 问题似乎出在代码上。..它指向/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/../lib/,而它需要查看jar所在的/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/lib/。谢谢你的回答…