【问题标题】:How to add non-maven jars to classpath?如何将非 Maven jar 添加到类路径?
【发布时间】:2016-03-16 09:33:51
【问题描述】:

我必须将一些非 maven jar 添加到 Spring Boot 项目 (MVC) 中。这些罐子不是由 maven 或 gradle 或 ... 构建的,并且没有 pom.xmlbuild.gradle 或 ...

这些 jars 是由一家公司提供的,他们没有计划将这些 jars 托管在任何 maven 存储库上,甚至是他们自己的(实际上他们没有私有 maven 存储库)。

我的项目结构是这样的

my-app/
  |-lib
  |  |-some.jar
  |  |-other.jar
  |
  |-src/
     |-main/
     |   |-java/
     |   |-resources/
     |
     |-test/
         |-java/

我在项目根目录中添加了一个文件夹lib/,并将那些非 maven jar 放入其中。问题是如何配置pom.xml 以将这些jar 包含在类路径中?或者我可以将这些 jars 放在其他文件夹中以避免扭曲 maven 配置吗?

【问题讨论】:

  • 我已经阅读了那篇文章,但是我可以在不将这些 jars 安装到本地 maven repo 的情况下将 jars 添加到类路径吗?
  • 检查 <scope>system</scope> 的依赖关系。您必须非常小心,因为默认情况下以这种方式创建的 jar 文件不可移植
  • 我添加了<scope>system</scope>,但我没有将这些jar 放入java home,因为它们依赖于GSON。我尝试了<systemPath>${basedir}/lib/some.jar</systemPath>,但构建失败。

标签: java maven spring-boot


【解决方案1】:

你可以这样做:

例如,我想在我的存储库中添加 ojdbc-7.jar,我转到我的存储库 \USERFolder\Laptop_Login.m2\repository\ojdbc\ojdbc\7 我手动创建路径 ojdbc\ojdbc\7\ 并在路径 7 中放置我的 File Jar。

依赖 groupId ojdbc groupId artifactId ojdbc artifactId 版本 7 版本 依赖

在标签的 artifactId 值和标签的 version 值之间添加一个像这样 (ojdbc-7) 的碎块。

我认为这是更好的方法。

【讨论】:

  • “我认为这是更好的方法。”,好吧,我不会这么说, mvn install:install-file 会做完全一样的,但不是手动的,更不容易出错,更标准,但更不便携的构建
猜你喜欢
  • 1970-01-01
  • 2013-11-24
  • 2010-12-03
  • 1970-01-01
  • 2021-12-12
  • 2015-09-27
  • 1970-01-01
  • 2016-11-04
  • 2015-03-02
相关资源
最近更新 更多