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

Gradle没有考虑依赖锁文件

齐甫
2023-03-14
gradlew clean build
buildscript {
    repositories {
        // ...
    }
    dependencies {
        classpath 'com.commercehub.gradle.plugin:gradle-avro-plugin:0.21.+'
        classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.+'
    }
}

plugins {
    id 'java'
    id 'pl.allegro.tech.build.axion-release' version '1.12.1'
}

group 'xxx'
sourceCompatibility = '11'
targetCompatibility = '11'

configurations {
    compileClasspath {
        resolutionStrategy.activateDependencyLocking()
    }
    intTestImplementation.extendsFrom implementation
}

repositories {
    // ...
}

apply from: "${rootDir}/gradle/versioning.gradle"
project.version = scmVersion.version
apply plugin: 'com.commercehub.gradle.plugin.avro'
apply plugin: 'com.github.johnrengelman.shadow'

dependencies {
    implementation 'org.apache.avro:avro:1.10.+'
    implementation 'org.slf4j:slf4j-log4j12:1.7.+'
    implementation 'org.apache.kafka:kafka-streams:2.6.+'
    implementation 'io.confluent:kafka-streams-avro-serde:6.0.+'
    implementation 'com.fasterxml.jackson.core:jackson-core:2.11.+'
    implementation 'com.fasterxml.jackson.core:jackson-annotations:2.11.+'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.11.+'
    implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.+'
    testImplementation 'org.apache.kafka:kafka-streams-test-utils:2.6.+'
    testImplementation 'com.fasterxml.jackson.core:jackson-core:2.11.+'
    testImplementation 'com.fasterxml.jackson.core:jackson-annotations:2.11.+'
    testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.11.+'
    testImplementation 'junit:junit:4.13.+'
}

test {
    testLogging {
        outputs.upToDateWhen { false }
        showStandardStreams = true
        exceptionFormat = 'full'
    }
}

task run(type: JavaExec) {
    main = 'Class'
    classpath = sourceSets.main.runtimeClasspath
    args = ['configuration/dev.properties']
}

jar {
    manifest {
        attributes(
                'Class-Path': configurations.compileClasspath.collect { it.getName() }.join(' '),
                'Main-Class': 'Class'
        )
    }
}

project.tasks.assemble.dependsOn project.tasks.shadowJar

shadowJar {
    archiveBaseName = "app-standalone"
    archiveClassifier = ''
}

不幸的是,我在gradle docs中找不到任何指向我这个问题的东西。非常感谢您的帮助!

共有1个答案

时向文
2023-03-14

我的错。我没有锁定测试类路径。

它通过以下更改工作:

configurations {
    intTestImplementation.extendsFrom implementation
}

dependencyLocking {
    lockAllConfigurations()
}

如果有更好的方法,我仍然感兴趣;)

 类似资料:
  • 在命令行中,我需要构建一个没有依赖项的可执行jar。当前的“gradle build”命令给了我一个带有依赖项的jar。 在StackOverflow上找不到这个。如果是重复的问题,指给我看。谢谢。

  • 我正在为jboss ear应用程序编写一个EJB jar模块。我使用的是gradle,我不想试图从JBoss声明jar在运行时依赖的所有不同依赖项。是否有一种方法可以声明对目录树中所有文件的依赖关系。

  • 我创建了一个带有 打包的第谷项目。该项目包括一些通过 pom.xml 指定的依赖项。相关的pom部分是: 清单是: 该项目仅包含默认包中的一个类,该类使用来自< code > org . TestNG . annotations 的注释来测试编译期间是否包含依赖项。 如果我使用Maven 3.0.4在命令行上构建项目,一切正常。在Eclipse Juno中导入项目后,我收到了多个错误。最重要的一个

  • 问题内容: 我有一种写入日志文件的方法。如果文件存在,则应将其追加到文件中,否则,我希望它创建一个新文件。 我要检查是否可以创建文件。文件是一个java.io.File对象。createNewFile引发IOException:没有此类文件或目录。自从我几周前编写此方法以来,该方法一直非常有效,直到最近才开始执行此方法,尽管我不知道自己可以更改什么。我检查了该目录是否存在,并且我拥有该目录的写权限

  • 问题内容: 问题。 Gradle依赖管理使得: 没有简便的方法来检查依赖项更新的可用性(仅使用某些第三方插件,如ben-manes / gradle-versions-plugin)并下载更新以替换旧版本; 从远程存储库下载依赖项工件,然后将其存储在gradle缓存中,并在后续构建中重用;但是项目的成功编译必须不依赖于与Internet的连接,远程存储库的可用性以及这些存储库中特定版本的依赖项。

  • 问题。 分级依赖项管理是这样进行的: 检查依赖更新的可用性(仅使用一些第三方插件,如Ben-Manes/Gradle-Versions-Plugin),并下载替换旧版本的更新是不容易的; 依赖项构件从远程存储库下载,然后存储在gradle缓存中,并在后续构建中重用;但项目的成功编译不能依赖于与Internet的连接、远程存储库的可用性以及这些存储库中依赖项的特定版本的存在。 null