4

是否有一个不是 mvn 的 maven 客户端(maven 发行版中包含的二进制文件)我可以用来在不使用 pom 的情况下从 maven 存储库中提取工件?我想使用 maven 存储库作为我们的操作团队的存储库来获取构建(包括构建的快照),但我不希望他们不得不在编写 pom 和在其中声明依赖项时搞乱。理想情况下,我正在寻找一个 cli 客户端,我可以只传递一个 repo url 和坐标并下载给定的工件。这样的事情是否存在,或者我最好为此编写一个一次性脚本?

4

6 回答 6

8

我看到 3 个简单的选项:

  1. 只需向他们发送指向您存储库中工件的链接,并让他们使用他们的浏览器。
  2. 安装和使用wget( wget http://path/to/artifact.extension)。
  3. 安装和使用mvn dependency:get(需要mvn不需要a ,有关详细信息pom.xml,请参阅此答案)。
于 2009-12-10T12:53:46.857 回答
4

使用连结。它提供了一个 Web 界面,其他团队可以使用它来下载工件。http://nexus.sonatype.org/

于 2009-05-19T22:52:28.617 回答
3

使用 maven 嵌入器。更重要的是,使用 maven 嵌入器中的功能来解析和下载 jar。尽管如果您只是尝试编写一个简单的 CLI,存储库结构并不复杂,您可以轻松编写一个脚本,该脚本采用 maven repo url、工件 ID、组 ID 和版本来生成 jar 的完整 URL。

于 2009-05-19T20:25:02.517 回答
1

这就是我们在jcabi-aether中的做法:

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

您需要向这个库提供的只是 1) 远程存储库列表,2) 本地存储库的位置,以及 3) 工件的 Maven 坐标。该库使用Sonatype 的Apache Aether

于 2012-10-28T12:35:00.343 回答
0

从技术上讲,存储库是通过 HTTP 访问的,因此考虑到存储库的位置、工件和坐标,应该可以为您的运维团队提供一个他们可以在任何浏览器中访问的工件的 URL。

于 2009-05-20T03:38:14.773 回答
0

考虑一下Pax URL,它允许您使用纯 URL 来引用 maven 工件,如下所示:

mvn:groupId/artifactId/version

有关详细信息,请参阅PAX URL 网站(MVN 协议处理程序)。

托尼

于 2009-12-10T11:28:38.763 回答