[英]How to use local JUnit Jar from Gradle instead of Maven Central?
我正在尝试在没有 inte.net 访问权限但有 SSH 访问权限并且可以同步我的本地文件等的环境中运行我的 JUnit 测试。
我想我可以将我的 JUnit jar 添加到项目中,但这似乎不起作用(而且它似乎没有下载到我的 Maven 缓存中)。
理想情况下,我可以在具有 Inte.net 访问权限的开发机器上执行此操作——编译所有内容并同步它
gradle assemble testClasses
简单例子
从这个https://github.com/spring-guides/gs-rest-service开始编辑 build.gradle 添加行以在本地抓取 Jars
将 JUnit jar 添加到“libs”文件夹,即 mkdir libs; 光盘库; wget https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.7.2/junit-jupiter-engine-5.7.2.jar
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 获取:
gradle 清洁测试
任务:测试失败
失败:构建失败,出现异常。
- 出了什么问题:任务 ':test' 执行失败。
无法下载 junit-jupiter-engine-5.7.2.jar (org.junit.jupiter:junit-jupiter-engine:5.7.2) 无法获取资源 'https://repo.maven.apache.org/maven2/org/junit/木星/junit-jupiter-engine/5.7.2/junit-jupiter-engine-5.7.2.jar'。 > 无法获取“https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.7.2/junit-jupiter-engine-5.7.2.jar”。 > repo.maven.apache.org:名称解析暂时失败
尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。 使用 --info 或 --debug 选项运行以获取更多日志 output。使用 --scan 运行以获取完整的见解。
在https://help.gradle.org获得更多帮助
此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 7.0 不兼容。 使用“--warning-mode all”来显示各个弃用警告。 请参阅https://docs.gradle.org/6.8.3/userguide/command_line_interface.html#sec:command_line_warnings
在 4 秒内构建失败 4 个可操作任务:4 个已执行
更新
Gradle 期望文件夹格式是什么?
这是我试过的
将我的 settings.gradle 更改为此
pluginManagement {
repositories {
maven {
url './libs'
}
}
}
将所有 jars 复制到我的 libs 文件夹
寻找。 -名称“ spring 2.5.2*jar”| xargs cp -t ~/complete/libs/
为了好玩,复制了整个文件夹 cp -rf ~/.gradle/caches/modules-2/files-2.1/ ~/complete/libs/
但是还是找不到Spring插件?
我的 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
$ gradle 测试
失败:构建失败,出现异常。
其中:构建文件“/Users/dennch3/tsmec/modules/e2etests/complete/build.gradle”行:2
出了什么问题:在以下任何来源中都找不到插件 [id: 'org.springframework.boot', version: '2.5.2']:
- Gradle 核心插件(插件不在“org.gradle”命名空间中)
- 插件存储库(无法解析插件工件'org.springframework.boot:org.springframework.boot.gradle.plugin:2.5.2')在以下存储库中搜索:maven(文件:~/complete/libs/)
您的问题不是 junit,要运行 gradle,您需要访问依赖项的 maven 存储库和 gradle 插件存储库(您有 spring 启动)
您选择了 mavencentral(),但无法访问 inte.net 这将不起作用,您应该可以访问 maven 和 Gradle 插件的本地存储库。
如果你的libs已经有spring jars,那么去掉spring相关的依赖(第3,4行)
也从 testCompile 更改为 testImplementation(第 2 行)
PS - 您可能还需要插件来添加本地存储库,请参阅https://docs.gradle.org/current/userguide/plugins.html#sec:custom_plugin_repositories
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.