2012-02-21 62 views
2

我已经使用默认配置在本地主机上设置了一个Archiva实例。我已经尝试了几种不同的Gradle配置来解析archiva实例,但似乎没有任何工作。Gradle无法解析本地主机上的Maven回购

  1. 使用mavenRepo
  2. 行家使用常春藤和仅指定伪影图案(当我用常春藤其中工作)

的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是否将本地主机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 
    
  • +0

    'maven {url'http:// localhost:8080/archiva'}'应该可以正常工作,如果这是正确的URL。 (在尝试之前,请删除'mavenRepo'。)你得到了什么确切的输出? '-s'还是'-d'提供任何见解?哪个Gradle版本/操作系统? – 2012-02-21 14:08:22

    +0

    调试信息给我一个'ModuleVersionNotFoundException'两个未解决的依赖关系,我认为这是失败的预期。我在Windows XP 32bit上使用Gradle 1.0-milestone-8。 – 2012-02-21 14:26:12

    +0

    这是从哪里来的? '找不到与group匹配的任何版本:erichschroeter,module:applib,version:latest.integration'特别是'latest.integration'是常青藤概念,而不是Maven。一般来说,我建议从最简单的单一项目构建开始,并从此处开始。该网址是Archiva Maven回购的正确根网址吗?你可以在浏览器中打开“http:// localhost:8080/archiva/jspf/jspf.core/1.0.2 /'吗? (PS:我在Maven Central找不到这样的模块。) – 2012-02-21 14:40:41

    回答

    6

    问题不得不处理摇篮的缓存和我的文物到Archiva回购初始上传。

    当您在Archiva上传工件时,您可以选择生成Maven 2 POM,但我没有这样做。因此,当Gradle去解决Archiva仓库中的依赖关系时,它没有找到我认为它正在查找的POM,因此无法解决依赖关系。

    该问题已通过删除.gradle/caches目录并简单地呼叫build从头开始解决。