java - 为什么Gradle在本地m2存储库中看不到该Maven坐标?

标签 java maven gradle build.gradle

我有一个内部库中的一些本地构建的JAR文件。今晚的任务是将现有的(正在运行的)Maven项目转换为使用Gradle构建。我可以在同一存储库中成功链接到Apache-commons3,据我所知,Maven坐标是以相同的方式形成的。

从小开始,我尝试使用本地构建的“Util.jar”编译一个小的主程序:

  dependencies{

    //          -- local lib --
compile group: 'lib.java8', name: 'util',  version: '00.08.007'

    //          -- apache commons --
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.3.2'
  }

在资源库文件夹区域中,本地库JAR和Apache之间的文件版本对我来说似乎是一致的。首先图书馆...
 Directory of r:\.repo\maven\.m2\repository\local\lib\java8\util\00.08.007

    07-Jun-2015  21:20            20,585 util-00.08.007.jar
    27-Apr-2015  21:03             1,829 util-00.08.007.pom

以及同一存储库中的Apache-commons条目:
 Directory of r:\.repo\maven\.m2\repository\local\org\apache\commons\commons-lang3\3.3.2

 16-Dec-2014  21:48           412,739 commons-lang3-3.3.2.jar
 16-Dec-2014  21:48                40 commons-lang3-3.3.2.jar.sha1
 16-Dec-2014  21:48            20,377 commons-lang3-3.3.2.pom
 16-Dec-2014  21:48                40 commons-lang3-3.3.2.pom.sha1
 09-May-2015  23:12               261 _maven.repositories
 17-Sep-2014  19:31               199 _remote.repositories

在我看来,两个示例的文件名-versionNumber-s的结构相似。然而
gradle assemble

目标报告有关本地编译的库JAR的错误。

gradle组装 ...
  :compileJava

  FAILURE: Build failed with an exception.

  * What went wrong:
  Could not resolve all dependencies for configuration ':compile'.
  > Could not find lib.tmacs.java8:util:00.08.007.
    Searched in the following locations:
        https://repo1.maven.org/maven2/lib/java8/util/00.08.007/util-00.08.007.pom
        https://repo1.maven.org/maven2/lib/java8/util/00.08.007/util-00.08.007.jar
    Required by:
        :dataexample:00.00.001-SNAPSHOT

  BUILD FAILED

我感到难过。在每种情况下,匹配的存储库文件都以相同的方式进行协调。

题:
  • Gradle在工作(Maven)项目中找不到什么?
  • 我可以使用Gradle和如何访问现有的Util.jar吗?
  • 如何修复构建Util.jar库的Maven POM,以便新的Gradle项目和现有的Maven POM项目都可以使用相同的JAR构建?

  • 最后,我是在问正确的问题,还是我完全偏离了轨道?

    最佳答案

    Gradle已经给您答案:

    Searched in the following locations:

    https://repo1.maven.org/maven2/lib/java8/util/00.08.007/util-00.08.007.pom

    https://repo1.maven.org/maven2/lib/java8/util/00.08.007/util-00.08.007.jar


    您需要指示gradle在哪里寻找 Artifact 。参见this questionthis one。感兴趣的关键字是mavenLocal()
    有关定义存储库的所有信息都可以在the docs中找到

    关于java - 为什么Gradle在本地m2存储库中看不到该Maven坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30782007/

    相关文章:

    java - 运行maven spi项目进行调试

    java - 如何从maven获取gif资源

    java - 错误:(1,0)类别com/android/repository/api/Downloader中的方法哈希具有非法修饰符:0x9

    Gradle - 在所有子模块的测试阶段后运行 testReport 任务

    Java Jackson 序列化器获取变量名称

    java - 使用 NDK/JNI 从 Android 调用带有双指针参数的 C 方法

    java - 无法为 Jar 中的文件创建文件对象

    java - 使用 byte[] 和 charset 的构造函数创建字符串对象

    maven - HBase 上的 mapreduce 需要哪些库?

    gradle - Vaadin Gradle项目中升级Spring Boot版本时出错