如何在gradle构建文件中配置maven本地和远程存储库?

问题描述:

我想将Maven本地存储库另外用于Maven远程存储库。为此,我找到了JIRA-Issue http://issues.gradle.org/browse/GRADLE-1173,但以这种方式修改了我的gradle构建文件,但仍然未找到仅在本地maven存储库中可用的某些快照依赖项。我收到一个错误,指出找不到快照依赖项。如何在gradle构建文件中配置maven本地和远程存储库?

是否有可能拥有一个本地和一个远程Maven仓库?

这里是我的gradle这个build文件的相关部分:

apply plugin: 'maven' 

repositories { 

    mavenLocal() 

    maven { 
     credentials { 
      username "myusername" 
      password "mypassword" 
     } 
     url "http://myremoterepository" 
    } 

} 
+1

我没有看到一个原因,它不该”工作。你可以尝试暂时排除远程Maven存储库和相关的依赖关系,看看会发生什么?有可能'mavenLocal()'不会正确猜测版本库的位置。尝试用'mavenRepo urls:“file:///home/user/.m2/repository”'而不是'mavenLocal()'来明确地指向正确的位置,看看会发生什么。 – rodion

+0

请注意,'X.Y-SNAPSHOT'总是_older_而不是'X.Y',所以当您添加'-SNAPSHOT'时,还会碰撞'Y'以准备最终发布。如果您只是将'-SNAPSHOT'添加到已发布的'X.Y',那么它会找到'X.Y'而不是'X.Y-SNAPSHOT'。 –

我还需要做一个类似的设置与我的项目,我可以验证您的build.gradle安装程序提供您的Maven安装正确。

摇篮mavenLocal()依靠localRepository定义从行家settings.xml文件:

<localRepository>USER_HOME\.m2\repository</localRepository> 

settings.xml中应该也在你的M2_HOME/conf或您USER_HOME/.m2 directory。您应该检查:

  1. Maven是安装正确
  2. M2_HOME环境变量存在
  3. settings.xml具有定义的正确localRepository ..
+0

有些人会覆盖本地Maven存储库位置(例如在IDE中)。所以我宁愿把显式位置的maven repo:'maven {urven(local_repository_path) }'where'local_repository_path'取自'gradle.properties' –

+0

有谁知道我必须在Windows上配置什么样的环境变量?我的maven安装位于路径中,我有一个einvironment变量M2_HOME指向settings.xml所在的文件夹,maven本身解析存储库就好了,但gradle不能。它在我做publishToMavenLocal时构建,但没有任何内容显示在存储库中。 – UncleBob

的Maven只能使用一个本地(“本地” =在其上运行Maven的计算机的硬盘)存储库。

如果您需要更多,你的选项有:

  • 运行一个远程服务器(如企业级代理),而且部署的一切。将该服务器作为镜像放入您的settings.xml
  • 运行mvn install的文物在当地的回购手动文物复制(显然,只有当你有来源)
  • 运行本地服务器
  • 复制到本地回购
+0

单个本地对我来说就足够了 - 单个和一个远程maven仓库,而不是多个本地maven仓库 – Cengiz

+0

在这种情况下,编辑您的问题并添加以下信息:您获得快照构件的错误? –