2

我们目前没有自己的存储库。因此,当我们使用 maven 构建时,它会在当前用户的主目录中创建 .m2 存储库。

现在有两个第三方 jar 在 Maven Central 中找不到。假设其中之一是hasp-srm-api.jar。今天的流程是这样的:

一种。依赖于hasp-srm-api.jar的项目的 pom.xml包含以下几行:

    <依赖>
      <groupId>com.safenet</groupId>
      <artifactId>搭扣</artifactId>
      <版本>1</版本>
    </依赖>

湾。在进行第一次构建之前,我们执行以下命令:

    mvn install:install-file -Dfile=hasp-srm-api.jar -DgroupId=com.safenet -DartifactId=hasp -Dversion=1 -Dpackaging=jar

我的问题是 - 是否可以自动化这一步?我希望能够告诉 maven 检查搭扣工件是否存在,如果不存在 - 使用上述命令行手动安装它。我该怎么做?

4

3 回答 3

4

不。不可能让 Maven 以您建议的方式自动将工件部署到存储库中。这适用于本地和远程存储库。如果工件存在于某个存储库中,您可以将该存储库添加到构建的已知远程存储库列表中,但除此之外,您必须自己添加它。

您可以将其添加到您的本地 .m2 存储库,但这只会对那个单独的环境有益。其他开发人员将不得不重复该过程。这是运行自己的存储库服务器(如 Nexus)的主要吸引力之一;您可以将工件添加到该存储库,然后您组织中的每个人都可以永久使用它。仍然没有办法自动化工件的部署,但它很容易做到并且是永久性的。

请注意,设置存储库管理器非常容易。强烈推荐。它使整个 Maven 事情变得更有意义。

于 2013-01-08T16:01:56.993 回答
0

此类问题的最佳解决方案是使用存储库管理器,这导致仅将此类依赖项安装一次到存储库管理器中,整个公司都可以使用它作为通常的依赖项。就是这样。

于 2013-01-08T15:04:02.967 回答
0

您拥有的其他选择是编写自己的 Maven 插件。可能是下面的链接将是您开始的正确地方

MOJO 常见问题

于 2015-05-04T11:28:44.980 回答