java - 寻找 Maven 快捷方式——包括 Maven 构建中的 jar 文件

标签 java maven-2

我继承了一个 Maven 项目。我只是将它用作构建工具,我想尽可能少地打扰事情。我必须对其中一个 Java 文件稍作添加,而该添加要求我在构建路径中包含一个新的 jar。 How do I say: 这里有一个 jar ,随便用吧。它不需要版本控制或依赖或下载或任何东西,只需使用它。任何帮助将不胜感激。

编辑:我找到了this ,这实际上有效(!)。如果知道此类事情的人可以阅读此答案并且看起来合理正确,请将此问题作为重复问题关闭。

编辑:不,我误解了我的结果。它似乎有效。

最佳答案

到目前为止,使用 maven 管理依赖项的最佳方法是从存储库中获取它们,但我想到了四个选项,按照从最理想到最不理想的顺序排列:

  1. 如果 jar 是一个常见的第三方库,您几乎可以肯定会在某个存储库中找到它。你只需要添加一个 <dependency> 元素,可能还有一个 <repository> 以及它知道从哪里获取依赖项。
  2. 在任何仓库中都不可用的本地 jar 应该部署到本地仓库,例如 Nexus ,您的整个团队/公司都可以使用。然后像选项 1 一样将依赖项添加到您的项目中。这样它只需要处理一次,其他人都可以通过正常的 Maven 机制获取 jar。
  3. 为了仅在本地处理问题而不提供工件的任何可重用性,您可以使用 install:install-file 将其安装到本地存储库(意味着位于 ~/.m2/repository 的本地缓存)中。目标。
  4. 最后,也是最不希望的,您可以使用 system-scoped dependency .这意味着您的文件系统中某处有可用的 jar 文件,设置 <scope>你的元素<dependency>到值“系统”,并添加一个 <systemPath>包含相关 jar 的完整路径的元素。

编辑:由于选项 4 似乎适合您,只需将 jar 放入您的项目并将其提交给您的版本控制。然后,假设 jar 位于项目中的 lib/foo.jar 中,将其添加到 POM 的依赖项中:

<dependency>
    <groupId>some-group</groupId>
    <artifactId>some-artifact</artifactId>
    <version>1.2.3.4</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/foo.jar</systemPath>
</dependency>

这都是凭内存,但听起来不错。

关于java - 寻找 Maven 快捷方式——包括 Maven 构建中的 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7072749/

相关文章:

java - Maven:antrun-plugin 与 war-plugin

生产方式中的 Java 和 GeoLite 数据库 : How to use GeoLiteCity. dat?

java - 当由 FXMLLoader 初始化时,如何重写控件的方法?

java - 为什么使用 AspectJ 的 google 缓存很慢,而 SpringCaching 却更快

maven-2 - 我在哪里可以找到关于 Maven 如何构建的序列图?

maven-2 - 如何让 Maven 将 war 常见的所有 jar 放在同一个 EAR 到 EAR 根目录中?

maven-2 - 将Web应用程序项目转换为maven项目并将相应的.classpath文件转换为pom.xml

maven-2 - 跳过测试时如何禁用模块编译

java - 实现两个 HashMap

java - 将JavaCV作为依赖项添加到Raspberry PI上运行?