代码之家  ›  专栏  ›  技术社区  ›  whaley

用于从不带MVN/POMS的Maven repo下载工件的实用程序[关闭]

  •  4
  • whaley  · 技术社区  · 15 年前

    是否有一个maven客户机不是mvn(maven发行版中包含的二进制文件),我可以在不使用pom的情况下从maven存储库中提取工件?我想使用一个Maven存储库作为我们的运营团队获取构建(包括 builds)但是我不想让它们在编写pom和声明它们中的依赖项时陷入混乱。理想情况下,我只是在寻找一个cli客户机,我可以通过一个repo URL来协调和下载一个给定的工件。这样的事情是存在的还是我最好为它写一个一次性的脚本?

    6 回复  |  直到 12 年前
        1
  •  4
  •   Taylor Leese    15 年前

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

        2
  •  7
  •   Community Mr_and_Mrs_D    7 年前

    我看到3个简单的选项:

    1. 只需向他们发送一个指向存储库中工件的链接,让他们使用他们的浏览器。
    2. 安装使用 wget ( wget http://path/to/artifact.extension )
    3. 安装使用 mvn dependency:get (需要 mvn 但是 需要一个 pom.xml this answer 了解更多详细信息)。
        3
  •  3
  •   Tobias Schulte marmelin    13 年前

    使用 maven embedder . 更重要的是,使用MavenEmbedder内部的功能来解析和下载JAR。尽管您试图编写一个简单的CLI,但存储库结构并不复杂,您可以轻松地编写一个脚本,该脚本使用maven repo url、artifact id、group id和version来生成JAR的完整URL。

        4
  •  1
  •   yegor256    12 年前

    我们就是这样做的 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)本地repo的位置,以及3)工件的Maven坐标。图书馆使用 Apache Aether 来自Sonatype。

        5
  •  0
  •   matt b    15 年前

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

        6
  •  0
  •   Toni Menzel    15 年前

    考虑 PAX URL 它允许您使用普通的URL引用maven工件,比如:

    mvn:groupId/artifactId/version
    

    PAX URL Website 有关详细信息(MVN协议处理程序)。

    托妮