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

如何使用Gradle的本地JUnit Jar而不是Maven Central?

尉迟招
2023-03-14
gradle assemble testClasses
plugins {
    id 'org.springframework.boot' version '2.5.2'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
}

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    testCompile fileTree(dir: 'libs', include: '*.jar')
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation('org.springframework.boot:spring-boot-starter-test')
}

test {
    useJUnitPlatform()
}

但它并不在“libs”中寻找JUnit jar,而是试图从Maven Central中抓取:

级配洁净试验

任务:测试失败

    null

Gradle期望文件夹格式是什么?

这是我试过的

改变了我的安顿。格雷德尔变成了这个

pluginManagement {
    repositories {
        maven {
            url './libs'
        }
    }
}
$ ls libs
6.8.3                       org.assertj
ch.qos.logback                  org.codehaus.groovy
com.datastax.oss                org.eclipse.ee4j
com.fasterxml                   org.eclipse.jetty
com.fasterxml.jackson               org.glassfish.jersey
com.fasterxml.jackson.core          org.hamcrest
com.fasterxml.jackson.datatype          org.infinispan
com.fasterxml.jackson.module            org.jboss
com.google.code.findbugs            org.jetbrains.kotlin
com.jayway.jsonpath             org.jetbrains.kotlinx
com.oracle.database.jdbc            org.junit
com.sun.activation              org.junit.jupiter
com.vaadin.external.google          org.junit.platform
commons-codec                   org.mockito
commons-logging                 org.objenesis
dependency-management-plugin-1.0.11.RELEASE.jar org.opentest4j
files-2.1                   org.ow2
io.dropwizard.metrics               org.ow2.asm
io.micrometer                   org.skyscreamer
io.netty                    org.slf4j
io.projectreactor               org.sonatype.oss
io.prometheus                   org.springframework
io.r2dbc                    org.springframework.boot
io.rsocket                  org.springframework.data
io.spring.dependency-management         org.springframework.integration
io.spring.gradle                org.springframework.security
jakarta.activation              org.springframework.session
jakarta.annotation              org.tomlj
jakarta.xml.bind                org.xmlunit
jars-8                      org.yaml
journal-1                   spring-boot-2.5.2.jar
junit-jupiter-engine-5.7.2.jar          spring-boot-autoconfigure-2.5.2.jar
modules-2                   spring-boot-buildpack-platform-2.5.2.jar
net.bytebuddy                   spring-boot-gradle-plugin-2.5.2.jar
net.java.dev.jna                spring-boot-loader-tools-2.5.2.jar
net.minidev                 spring-boot-starter-2.5.2.jar
org.antlr                   spring-boot-starter-json-2.5.2.jar
org.apache                  spring-boot-starter-logging-2.5.2.jar
org.apache.commons              spring-boot-starter-test-2.5.2.jar
org.apache.httpcomponents           spring-boot-starter-tomcat-2.5.2.jar
org.apache.logging              spring-boot-starter-web-2.5.2.jar
org.apache.logging.log4j            spring-boot-test-2.5.2.jar
org.apache.tomcat.embed             spring-boot-test-autoconfigure-2.5.2.jar
org.apiguardian                 transforms-3

哪里出了问题:在以下任何来源中都找不到插件[ID:'org.springframework.boot',版本:'2.5.2']:

  • gradle核心插件(插件不在'org.gradle'命名空间中)
  • 插件存储库(无法解析插件工件'org.springframework.boot:org.springframework.boot.gradle.plugin:2.5.2')在以下存储库中搜索:maven(文件:~/complete/libs/)

共有1个答案

程鸿煊
2023-03-14

您的问题不是junit,要运行gradle,您需要访问maven存储库中的依赖项和gradle插件存储库(您有spring boot)

您选择了mavencentral(),但是如果无法访问internet,这将不起作用,您应该可以访问maven和Gradle-Plugins的本地存储库。

如果您的lib已经有了spring jar,那么移除spring相关的依赖项(第3、4行)

 类似资料:
  • 我正在尝试用gradle-wrapper()构建一个gradle项目。 当我使用进行构建时,它会输出文本 下载http://services.gradle.org/distributions/gradle-1.11-bin.zip 我已经单独下载了gradle-1.11-bin.zip,我不想在构建时再次下载它。 那么,我应该把gradle-1.11-bin.zip放在我的项目或系统的什么地方,这

  • 我遇到了以下问题:当我解马歇尔对象时,xml返回如下所示: 相反 我已经尝试更改我的包信息(类在多个包上),可以添加@xmln表示法和前缀="",但是命名空间在其他节点上移动。 有没有一个选项可以强制jaxb使用不带前缀的本地名称空间?

  • 我正在尝试为Maven使用gradle-enterprise-maven-扩展。我的理解是,您可以通过Gradle Enterprise server和/或本地缓存来决定使用远程缓存。我想禁用任何远程缓存并启用本地缓存。 可能我误解了扩展的工作原理。是否需要一个分级企业才能使用扩展?如果是,为什么需要它?为什么我不能像在Gradle那样使用本地缓存?

  • 我正在尝试构建react原生android应用程序,作为一种依赖,我看到我有gradle,但它无法在构建时加载。错误消息: 问题很明显,我坐在公司代理后面,阻止任何像这样的错误HTTPS连接。所以我的问题是:如何强制gradle使用HTTP加载这些文件?这些属性应该放在哪里(哪一个gradle文件,即gradle.properties)? P. S.我已经在gradle属性文件中设置了这些: 任何

  • 首先,我对npm和Grunt很陌生。我们有一个项目,我们正在使用Grunt编译并生成其输出文件。我正在尝试设置我们的构建服务器,以使用Grunt生成输出文件。我们使用的是带有TFS源代码管理的Windows,由于其260个字符的路径限制,我们无法将grunt-bower-task模块检查到源代码管理中(因为它在安装的路径中仅使用了230个字符)。 咕噜声 grunt-bower-task Grun

  • 我试图安装flake8包使用pip3,它似乎拒绝安装,因为已经安装在一个本地位置。 如何强制全局安装(系统级)? 请注意,我更喜欢一个通用的解决方案(应该在Debian、OSX甚至Windows上工作),一个应该在任何平台上使用的解决方案,所以我不想自己指定目标。 出于某种奇怪的原因,它的行为就像我已经指定了,而在我的情况下,我没有指定。 我能够在全球范围内安装包的唯一方法是首先删除它,然后在此之