当前位置: 首页 > 知识库问答 >
问题:

Maven依赖树不同于M2E的依赖层次结构

姬捷
2023-03-14

我正在构建一个JavaProjectMaterialsDep,这是一个项目craftbukkit的插件[加载在我的工作区中,并且是类型jar和范围编译的MaterialsDep的直接依赖项]。在eclipse中查看MaterialsDep的pom依赖层次结构,CB所需的所有jars都显示为已解析并正确列出。然而,在项目AP上运行mvn依赖:复制依赖只复制直接依赖项,而不复制其他内容。

运行依赖关系:树显示:

[INFO] --- maven-dependency-plugin:2.4:tree (default-cli) @ MaterialsDep ---
[INFO] MaterialsDep:MaterialsDep:jar:0.0.1-SNAPSHOT
[INFO] +- org.bukkit:craftbukkit:jar:1.3.1-R1.1-SNAPSHOT:compile
[INFO] +- org.pircbotx:pircbotx:jar:1.7:compile
[INFO] \- org.bukkit:bukkit:jar:1.3.1-R1.1-SNAPSHOT:compile

这是直接的依赖关系。

我应该如何确保craftbukkit的依赖关系被识别和复制?

[编辑]

craftbukkit的依赖关系树

[INFO] org.bukkit:craftbukkit:jar:1.3.1-R1.1-SNAPSHOT
[INFO] +- org.bukkit:bukkit:jar:1.3.1-R1.1-SNAPSHOT:compile
[INFO] +- org.bukkit:minecraft-server:jar:1.3.1:compile
[INFO] +- net.sf.jopt-simple:jopt-simple:jar:3.2:compile
[INFO] +- jline:jline:jar:2.6:compile
[INFO] +- org.fusesource.jansi:jansi:jar:1.8:compile
[INFO] +- org.xerial:sqlite-jdbc:jar:3.7.2:compile
[INFO] +- mysql:mysql-connector-java:jar:5.1.14:compile
[INFO] +- org.avaje:ebean:jar:2.7.3:provided
[INFO] |  \- javax.persistence:persistence-api:jar:1.0:provided
[INFO] +- org.yaml:snakeyaml:jar:1.9:provided
[INFO] +- com.google.guava:guava:jar:10.0:provided
[INFO] |  \- com.google.code.findbugs:jsr305:jar:1.3.9:provided
[INFO] +- commons-lang:commons-lang:jar:2.3:provided
[INFO] +- junit:junit-dep:jar:4.10:test
[INFO] +- org.hamcrest:hamcrest-library:jar:1.2.1:test
[INFO] |  \- org.hamcrest:hamcrest-core:jar:1.2.1:test
[INFO] \- com.google.code.gson:gson:jar:2.1:compile

共有1个答案

苏君昊
2023-03-14

通过正确配置依赖插件。该属性定义是否忽略传递依赖。请确保其值为false

mvn帮助:有效的pom可能有助于了解插件的配置方式。

[编辑]copy dependencies只会复制dependencity:tree显示的内容。正如您在上面的输出中所看到的,craftbukkit本身没有任何进一步的依赖关系。我猜craftbukkit的POM中的所有依赖项都有

如果是这样的话,那么你必须在你的POM中再次提到所有这些。

 类似资料:
  • 我想知道以下jar的所有传递依赖项: 将经典命令移动到pom。项目定义依赖关系和输入的xml: mvn依赖:树 将显示: 我没看到魔咒父母: 乍一看,mvn命令似乎可以显示非pom类型的依赖项。 有没有一种方法可以精确地显示使jar保持活动状态所需的每个文件? 谢谢

  • 我打算将一个由多个单一java项目组成的旧Ant项目迁移到一个多模块maven项目。的所有库都存储在一个本地文件夹中。为了建立依赖关系管理,我想向父pom添加所有依赖关系。xml(依赖项管理部分),并尽我所能将正确的内容添加到子项(Java Maven项目),直到编译工作开始。 然后,我想通过使用“mvn依赖:树-X”来简化pom.xmls,看看我是否向单个Maven项目添加了一些不需要显式添加到

  • 所以我有一个问题,那就是--Maven似乎忽略了依赖关系,尽管它们在层次结构中应该是可见的。 我有以下项目层次结构: 父级 --proja --sub-parent1 ---projb ---projc 所有级别都通过标记链接。将和声明为模块,没有声明依赖项。但是依赖于。构建整个模块不会构建,这很奇怪,因为知道,而知道,并且知道依赖关系()。但是当我构建整个或例如时,maven不会构建它。 编辑:

  • 主要内容:依赖声明,获取依赖坐标Maven 是一款优秀的依赖管理工具,那么什么是依赖呢? 通俗的说,如果一个 Maven 构建所产生的构件(例如 Jar 文件)被其他项目引用,那么该构件就是其他项目的依赖。 依赖声明 Maven 坐标是依赖的前提,所有 Maven 项目必须明确定义自己的坐标,只有这样,它们才可能成为其他项目的依赖。当一个项目的构件成为其他项目的依赖时,该项目的坐标才能体现出它的价值。 当 Maven 项目需要声

  • 问题内容: 我第一次使用Maven时,就陷入了依赖关系。 我使用Eclipse创建了一个Maven项目并添加了依赖项,并且该项目运行正常。 但是当我尝试通过命令行运行它时: 它下载依赖项,成功构建,但是当我尝试运行它时,出现NoClassDefFoundError: 我的是这样的: 谁能帮我? 问题答案: 默认情况下,Maven不会在生成的JAR文件中捆绑依赖项,并且在尝试通过命令行执行JAR文件