21

我想从命令行检查是否groupId.artifactId.version可以在存储库中找到某个坐标()。

如果可能的话,可以用部分坐标(例如artifactId.version)来完成吗?我可以指定回购吗?

我不要求解决方法 - 我可以简单地在我的本地存储库中开始文件搜索,或者在 POM 中输入工件并等待错误,或者安装 Nexus 并在 UI 上搜索......

这是一件方便的事情——一旦在 CLI 上,能够快速检查就很好了。

4

3 回答 3

30

这是我认为你会得到的最接近的:

mvn dependency:get -Dartifact=g:a:v -o -DrepoUrl=file://path/to/your/repo

我试过了,如果工件(例如“junit:junit:4.8.2”)在您的仓库中,它会成功,如果不是,则失败,但是您必须将本地仓库的完整路径写为 URL .

关键是使用 -o(离线)标志,否则 maven 将始终检查中央仓库。

于 2012-04-16T15:49:21.427 回答
1

我从来没有听说过这样的事情。get插件的目标可能dependency以某种方式接近,但它仍然不是您正在寻找的。恐怕没有这样的事。但是,编写自己的 Maven 插件来做你想做的事情可能非常简单。Maven 3 中的新工件解析机制,称为 Aether,具有非常好的和简单的 API。

无论如何,看看依赖插件:

http://maven.apache.org/plugins/maven-dependency-plugin/get-mojo.html

于 2012-04-16T15:48:51.717 回答
1

派对迟到了,

您可以在 Maven 中央存储库搜索 ( https://search.maven.org/fc: ) 上搜索具有语法的完整类名。

例子:

fc:org.apache.wink.common.annotations.Parent

用于查找对不再维护的库的引用。

于 2021-09-18T21:26:38.200 回答