Gradle未在本地主机上解析Maven Repo
我已使用默认配置在本地主机上设置了一个实例。我尝试了几种不同的Gradle配置来解析archiva实例,但似乎都不起作用Gradle未在本地主机上解析Maven Repo,maven,localhost,gradle,archiva,Maven,Localhost,Gradle,Archiva,我已使用默认配置在本地主机上设置了一个实例。我尝试了几种不同的Gradle配置来解析archiva实例,但似乎都不起作用 使用mavenRepo 马文 使用Ivy并且只指定工件模式(当我使用Ivy时,它起作用) build.gradle subprojects { apply plugin: 'java' apply plugin: 'maven' repositories { mavenRepo url: 'http://localhost:8080/
subprojects {
apply plugin: 'java'
apply plugin: 'maven'
repositories {
mavenRepo url: 'http://localhost:8080/archiva', artifactUrls: [
'http://localhost:8080/archiva/repository/internal',
'http://localhost:8080/archiva/repository/snapshot'
]
maven { url 'http://localhost:8080/archiva' }
ivy {
artifactPattern 'http://localhost:8080/archiva/repository/internal/[organisation]/[artifact]/[revision]/[artifact](-[revision]).[ext]'
}
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.10'
}
}
dependsOnChildren()
我认为发布任何/所有子项目的gradle文件都不合适,但如果您认为有必要,我可以
这里有我遗漏的东西吗?gradle对待本地主机URL是否与对待非本地主机URL不同(因为mavenCentral
依赖关系正在解决)?要让Gradle解析为Maven回购协议的本地实例,我必须做些什么
编辑:@Peter Niederwieser
:/> gradle build
> Loading > Resolving dependencies ':projects:project-plugin-framework:classpat
:projects:compileJava UP-TO-DATE
:projects:processResources UP-TO-DATE
:projects:classes UP-TO-DATE
:projects:jar UP-TO-DATE
:projects:assemble UP-TO-DATE
:projects:compileTestJava UP-TO-DATE
:projects:processTestResources UP-TO-DATE
:projects:testClasses UP-TO-DATE
:projects:test UP-TO-DATE
:projects:check UP-TO-DATE
:projects:build UP-TO-DATE
:projects:project-plugin-framework:compileJava UP-TO-DATE
:projects:project-plugin-framework:processResources UP-TO-DATE
:projects:project-plugin-framework:classes UP-TO-DATE
:projects:project-plugin-framework:jar UP-TO-DATE
:projects:project:compileJava UP-TO-DATE
:projects:project:processResources UP-TO-DATE
:projects:project:classes UP-TO-DATE
:projects:project:jar UP-TO-DATE
:projects:project:assemble UP-TO-DATE
:projects:project:compileTestJava UP-TO-DATE
:projects:project:processTestResources UP-TO-DATE
:projects:project:testClasses UP-TO-DATE
> Building > :projects:project:test > Resolving dependencies ':projects:mag
:projects:project:test
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all dependencies for configuration ':projects:project:tes
tRuntime'.
> Could not find group:jspf, module:jspf.core, version:1.0.2.
Required by:
Project.projects:project:0.0.1
Project.projects:project:0.0.1 > Project.projects:project-pl
ugin-framework:0.0.1
> Could not find any version that matches group:erichschroeter, module:applib, v
ersion:latest.integration.
Required by:
Project.projects:project:0.0.1
Project.projects:project:0.0.1 > Project.projects:project-pl
ugin-framework:0.0.1
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output.
BUILD FAILED
Total time: 12.61 secs
这个问题必须处理Gradle的缓存和我最初将工件上传到repo的问题 当您在Archiva中上传工件时,您可以选择生成Maven 2 POM,而我没有这样做。因此,当Gradle去解决Archiva repo中的依赖关系时,它没有找到我认为它正在寻找的POM,因此无法解决依赖关系
通过删除
.gradle/caches
目录并简单地调用build
从头开始,问题就解决了。maven{url'http://localhost:8080/archiva“}
如果URL正确,应该可以正常工作。(请在尝试之前删除mavenRepo
)您得到的确切输出是什么?-s
或-d
是否提供了一些见解?哪个Gradle版本/OS?调试信息为这两个未解决的依赖项提供了一个ModuleVersionNotFoundException
,我认为如果出现故障,这是预期的。我在WindowsXP32位上使用Gradle1.0-milestone-8。这是从哪里来的找不到任何与group:erichschroeter、module:applib、version:latest匹配的版本。特别是,latest。integration
是一个常春藤概念,而不是Maven概念。一般来说,我建议从最简单的单个项目构建开始,并从那里开始。URL是Archiva Maven repo的正确根URL吗?你能打开http://localhost:8080/archiva/jspf/jspf.core/1.0.2/
是否在浏览器中?(注:我在Maven Central中找不到这样的模块。)组:erichschroeter
和组:jspf
是我在本地主机repo上设置的组(它们在mavenCentral中不存在)。archiva设置中有一个WebDAV URL,http://localhost:8080/archiva/repository/internal
,我尝试过使用它,但仍然得到相同的结果。你能在浏览器中打开我提供的URL吗?它会显示一个.jar和一个.pom吗?latest.integration
从何而来?您是否在构建脚本中的某个地方指定了它?这有点不对劲,我认为它对Maven也不起作用。