为什么Gradle不能在本地m2存储库中看到这个Maven坐标?

时间:2015-06-11 13:20:49

标签: java maven gradle build.gradle

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

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

 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

在存储库文件夹区域中,本地库JAR和Apache之间的文件版本看起来与我一致。首先是图书馆......

 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

Apache-commons条目位于同一个存储库中:

gradle assemble

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

  :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

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

gradle assemble ...

Util.jar

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

问题:

  1. Gradle寻找(工作)Maven项目不是什么?
  2. 我可以使用Gradle和How?
  3. 访问现有的Util.jar
  4. 如何修复构建import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.Random; import java.util.Scanner; import javax.swing.JOptionPane; public class StackTest { public static void main(String[] args) { actionPerformed(); } public static void actionPerformed() { ArrayList<String> allQuestions = new ArrayList<String>(); File file = new File("D:/me/test.txt"); int numberOfRandomQuestions = 10; try { // Read line by line from the file Scanner scan = new Scanner(file); while (scan.hasNextLine()) { String line = scan.nextLine(); allQuestions.add(line); } scan.close(); } catch (FileNotFoundException ex) { ex.printStackTrace(); } for (int i = 0; i < numberOfRandomQuestions; i++) { Random randNum = new Random(); int randQuestionIndex = randNum.nextInt(numberOfRandomQuestions); System.out.println(); String randomQuestion = allQuestions.get(randQuestionIndex); JOptionPane.showMessageDialog(null, randomQuestion.replace("/", "\n")); } } } 库的Maven POM,以便新的Gradle项目和现有的Maven POM项目可以使用相同的JAR构建?
  5. 最后,我是在问正确的问题,还是我完全偏离了轨道?

1 个答案:

答案 0 :(得分:0)

Gradle已经给你答案了:

  

在以下位置进行搜索:

     

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在哪里查找您的工件。请参阅this questionthis one。感兴趣的关键字有mavenLocal()

有关定义存储库的所有信息都可以在the docs

中找到