本文介绍了取Maven工件编程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在寻找可用于从远程仓库retreive Maven工件的Java API。我发现的,但它看起来太过复杂满足我的需求,所以我正在寻找的东西更简单。

I'm looking for a Java API which can be used to retreive Maven artifacts from a remote repository. I've found Eclipse Ather so far but it looks over complicated for my needs so i'm seeking for something more simple.

我需要的是:


  • 我要指定远程Maven仓库的位置

  • 我想获取基于它神器的的groupId +的artifactId +版本

  • 的API必须提供的神器当前远程版本(想想这是建立定期让他们有他们的版本生成的部分文物快照)

  • 返回神器的位置,一个HTTP URL为preferred(我将我自己与如拿来。的Apache HTTP客户端)

  • 可选retreive神器的哪些是要求之一的家属。

推荐答案

可以帮助你(我是一个开发者)。这是围绕奥德一个简单的包装,可以让你找到一个Maven工件的所有传递依赖:

jcabi-aether may help you (I'm a developer). It's a simple wrapper around Aether, that lets you find all transitive dependencies of a Maven artifact:

File repo = this.session.getLocalRepository().getBasedir();
Collection<Artifact> deps = new Aether(this.getProject(), repo).resolve(
  new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"),
  JavaScopes.RUNTIME
);

因此​​,你需要提供作为输入的是:

Thus, all you need to provide as an input is:


  • 本地回购的位置,作为一个目录名

  • repote库列表( MavenProject#getRemoteRepositories()

  • 的Maven坐标神器

  • 的Maven范围来寻找

发现可以为获得每一个依赖的绝对路径神器#的getPath()

Absolute paths of every dependency found can be obtained as Artifact#getPath()

这篇关于取Maven工件编程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-22 07:41