如何从命令行确定Maven工件是否在我的repo中?

时间:2012-04-16 15:41:38

标签: search maven artifacts

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

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

我不要求解决方法 - 我可以在本地仓库中启动文件搜索,或者在POM中输入工件并等待错误,或者安装Nexus并在UI上搜索...

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

2 个答案:

答案 0 :(得分:25)

这是我认为你最接近的地方:

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

我试过了,如果工件(例如“junit:junit:4.8.2”)在你的仓库中,它会成功,如果不存在则会失败,但是你必须写出你当地仓库的完整路径作为一个URL。

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

答案 1 :(得分:1)

我从未听说过这样的事情。 get插件的dependency目标可能在某种程度上接近,但它仍然不是您正在寻找的。我担心没有这样的事情。但是,使用自己想要的Maven插件可能非常简单。 Maven 3中新的神器解析机制,称为Aether,具有非常好的简单API。

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

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