【问题标题】:Using Compile-Time Only Jars with Maven在 Maven 中使用仅编译时的 Jar
【发布时间】:2018-03-03 02:27:43
【问题描述】:

我有一个目录,其中包含一些我需要编译我的项目的罐子,但我不需要运行时。 (它们已经在部署 war 的环境中提供。)这些 Jars 目前没有与 Maven 项目关联。

对我来说,包含这些 jar 以便成功安装 maven 的最简单方法是什么?我看到一个maven依赖可以有一个provided的范围,但是我必须先把jar转成maven项目吗?

【问题讨论】:

  • 首先将这些 jars 放入存储库管理器中,然后为这些 jars 提供范围......

标签: java maven jar dependencies


【解决方案1】:

依赖的 jars 不必变成 maven 项目。也许最简单的解决方案是一次性将这些依赖 jar 手动发布到存储库,以便您的 maven 项目可以引用它们。然后正如您提到的,在您的项目中将这些 jar 标记为已提供。

但是,这种方法可能会导致问题。例如,假设您的代码依赖于一些 Apache jar。您如何知道运行时环境将提供哪个版本的 Apache jar?如果运行时环境已更新,但您的代码是使用具有不同包结构和/或类名的旧 jar 编译的,该怎么办?类加载器问题可能很残酷。 WAR/EAR 应该是独立的(尽可能)。

【讨论】:

  • 是的,情况当然并不理想(使用不同的 jar 副本),但它是我所坚持的。这让我尝试了 Apache Archiva,它一直非常顺利。感谢您的回答。
猜你喜欢
  • 2017-12-09
  • 1970-01-01
  • 2014-07-12
  • 2012-11-02
  • 1970-01-01
  • 2018-11-25
  • 2012-03-08
  • 1970-01-01
相关资源
最近更新 更多