我从内部库中有一些本地构建的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
我很难过。在每种情况下,存储库文件以相同的方式进行协调。
问题:
Util.jar
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构建?最后,我是在问正确的问题,还是我完全偏离了轨道?
答案 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 question或this one。感兴趣的关键字有mavenLocal()
。
有关定义存储库的所有信息都可以在the docs
中找到