【发布时间】:2012-02-21 14:01:40
【问题描述】:
我已经使用默认配置在我的本地主机上设置了一个Archiva 实例。我尝试了几种不同的 Gradle 配置来解析档案实例,但似乎都没有。
- 使用 mavenRepo
- 行家
- 使用 Ivy 并仅指定工件模式(在我使用 Ivy 时有效)
build.gradle
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 对 localhost url 的处理方式是否与非 localhost 不同(因为正在解析 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
【问题讨论】:
-
maven { url 'http://localhost:8080/archiva' }应该可以正常工作,如果那是正确的 URL。 (请在尝试之前删除mavenRepo。)你得到什么确切的输出?-s或-d是否提供任何见解?哪个 Gradle 版本/操作系统? -
调试信息为我提供了两个未解决的依赖项的
ModuleVersionNotFoundException,我认为这是失败的预期。我在 Windows XP 32 位上使用 Gradle 1.0-milestone-8。 -
这是从哪里来的?
Could not find any version that matches group:erichschroeter, module:applib, version:latest.integration特别是,latest.integration是 Ivy 概念,而不是 Maven 概念。一般来说,我建议从最简单的单项目构建开始,然后从那里开始。该 URL 是 Archiva Maven 存储库的正确根 URL 吗?你能在浏览器中打开http://localhost:8080/archiva/jspf/jspf.core/1.0.2/吗? (PS:我在 Maven Central 中找不到这样的模块。) -
group: erichschroeter和group: jspf是我在 localhost repo 上设置的组(它们在 mavenCentral 中不存在)。存档设置中有一个 WebDAV URL,它是http://localhost:8080/archiva/repository/internal,我尝试过使用它,但仍然得到相同的结果。 -
可以在浏览器中打开我给的网址吗?它是否显示 .jar 和 .pom?
latest.integration来自哪里?您是否在构建脚本的某处指定它?这有问题,我认为它也不适用于 Maven。
标签: maven localhost gradle archiva