【问题标题】:Maven: Identify the correct dependency from given codeMaven:从给定代码中识别正确的依赖关系
【发布时间】:2018-06-22 09:03:45
【问题描述】:

为已使用的类(属于 maven-online-repository)找到正确依赖项的最佳方法是什么?

据我所知是这种方法:

  1. 在 maven-repository 在线 (search.maven.org) 中从您的代码中查找导入(例如 org.whatever.X;)。

  2. 选择一个结果列表并将其包含在 POM 的依赖项部分中。

  3. 希望所选版本和依赖项的工件符合您的要求(编译、运行时)。如果没有,请尝试其他工件或版本。

【问题讨论】:

  • from your code 是什么意思?这是一个(Maven/Gradle/...)项目吗?
  • “解决为使用过的类找到正确的 jar/依赖项问题的最佳方法是什么” - 我认为这正是 maven 试图解决的问题!
  • 只要该工具不在我的代码中查找并为我找到正确的 jar 但我需要在我的 POM 中手动放置一个依赖项,我认为我需要找到它而不是 maven。
  • 关于 3:如果它们不是二进制兼容的,您始终可以编写代码以匹配该特定版本。您可能希望搜索项目自己的网站,并从作者/贡献者那里了解推荐的最新和/或最受支持的稳定版本是什么,或者哪个包含您在代码中需要的特定功能。不会有太多的反复试验。

标签: java maven dependency-management


【解决方案1】:

我想分享我的做法。您所说的“为属于 ... 的已用类查找 ...”是什么意思?你的意思是依赖已经在其他地方使用了,或者你只知道你可能需要的包名?

我会首先检查当前项目需要哪个版本。 如果我正在处理一个团队项目并且有人在其他地方使用了依赖项,我会检查他们的 pom(以确保我们使用相同的依赖项)。

然后我会在 Maven repo 中查找依赖项并将其包含在我的 pom.xml 中。

希望这会有所帮助。

【讨论】:

  • 是的,我知道要在代码中导入的包名。但后来我需要找到 jar/依赖项。
【解决方案2】:

基本上,是的,这是您为项目获取库/模块所必须做的。

在这个特定问题上帮助我解决了这个问题:版本控制。您可以使用 <properties> -> <gson.version>2.8.1</gson.version> (例如)为每个依赖项设置所需的版本。这样,您可以保证您的构建与您尝试实现的代码的类或类型的要求相匹配。

Maven 文档参考:https://maven.apache.org/pom.html#Properties

【讨论】:

    猜你喜欢
    • 2014-11-20
    • 2017-07-21
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多