【发布时间】:2017-03-23 10:46:03
【问题描述】:
我正在尝试在离线机器上构建我的项目(这是一项要求)。我已经创建了本地 maven 存储库(它只是一个具有适当结构的文件夹)并成功构建了所有其他东西。
我按照以下方式进行:
1) 运行 gradle installl(这个 maven 插件的目标)
然后手动检查错误。如果我看到一些库没有找到,那么
2) 我把它的 maven 坐标从我的机器上手动复制到这台机器上。
除 Antlr 外,它都可以工作。我收到以下消息:
>gradle install
:generateGrammarSource
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all dependencies for configuration ':antlr'.
> Could not download antlr4.jar (org.antlr:antlr4:4.5)
> Could not get resource 'http://repo.maven.apache.org/maven2/org/antlr/antlr4/4.5/antlr4-4.5.jar'
> Could not HEAD 'http://repo.maven.apache.org/maven2/org/antlr/antlr4/4.5/antlr4-4.5.jar'.
> Connection to http://repo.maven.apache.org refused
错误信息和往常一样,但这次将 jar 放入本地 maven 存储库并没有帮助。
如何克服?如何配置 Antlr 从本地 maven repo 中吃?
更新
文件存在于
MYHOME\.gradle\caches\modules-2\files-2.1\org.antlr\antlr4\4.5\af4a530e3cd7fa03636645d8077145eefac12907\antlr4-4.5.jar
在
MYHOME\.m2\repository\org\antlr\antlr4\4.5\antlr4-4.5.jar
在 maven 的情况下,伴随的文件也存在。
更新 2
注意上面写着
Could not resolve all dependencies for configuration ':antlr'.
并且Antlr依赖是由
添加的antlr "org.antlr:antlr4:4.5" // use ANTLR version 4
即不是compile,也不是testCompile。可能这就是线索吗?可能是专门为antlr 配置配置存储库的一种方式吗?
更新 3
我正在写的那些我成功解决的案例:
Could not resolve all dependencies for configuration ':compile'.
> Could not resolve net.coobird:thumbnailator:0.4.8.
Required by:
com.cireca.overlaywidget:OverlayWidget:1.0-SNAPSHOT
> Could not resolve net.coobird:thumbnailator:0.4.8.
> Could not get resource 'https://repo1.maven.org/maven2/net/coobird/thumbnailator/0.4.8/thumbnailator-0.4.8.pom'.
> Could not GET 'https://repo1.maven.org/maven2/net/coobird/thumbnailator/0.4.8/thumbnailator-0.4.8.pom'.
> Connection to https://repo1.maven.org refused
更新 4
奇怪的东西。我注意到我的配置看起来很多余:
repositories {
maven { url "http://repo.maven.apache.org/maven2" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "http://maven-eclipse.github.io/maven" }
mavenLocal()
flatDir {
dirs 'lib'
}
maven { url "http://repo.maven.apache.org/maven2" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "http://maven-eclipse.github.io/maven" }
}
我把它改成了
repositories {
mavenLocal()
flatDir {
dirs 'lib'
}
maven { url "http://repo.maven.apache.org/maven2" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "http://maven-eclipse.github.io/maven" }
}
然后它开始要求不同的图书馆。首先它声称
org.antlr:antlr4-runtime:4.5
我喂它成功了,但后来它声称
org.antlr:antlr-runtime:3.5.2
我不能喂它(同样的情况)。
【问题讨论】:
-
在你的仓库中显示结构
-
为什么会显示
Could not download antlr4.jar (org.antlr:antlr4:4.5)哪里应该尝试下载antlr4-4.5.jar? -
我无法复制它,它可以在我的工作站上运行。
-
@Opal 你在哪里看到它无法下载
antlr4.jar?无法下载org.antlr:antlr4:4.5,这是maven坐标。对应的 JAR 名称是antlr4-4.5.jar。 -
另外,请运行
gradle dependencies并检查您定义的 antlr 依赖项是否未被其他版本替换。
标签: java maven gradle antlr4 offline-caching