【发布时间】:2018-03-14 20:59:22
【问题描述】:
我在 IntelliJ 中有一个 Java 程序,它有一个 pom.xml 并使用 Maven。软件包已下载,目前由 IntelliJ 找到。
我有点困惑,因为据我所知,Maven 存储库不是 CLASSPATH 的一部分。那么,IntelliJ 是否只是在查看其 Maven 存储库以查找包时做了一些魔术? (我认为 IntelliJ 有自己的 Maven 存储库。我单独安装了 Maven 3,但我认为它没有使用它。)
但更一般地说:如果您使用 Maven 构建 JAR,那么我想它会将依赖项放在 Java 程序可以找到它们的 JAR 中,所以不会有问题。但是如果你只是直接运行一个 Java 程序,你需要将 Maven 存储库添加到你的类路径中还是会发生其他事情?
感谢您提供的任何信息以减少我的困惑:)
【问题讨论】:
-
Maven 是一个(依赖和构建)工具,独立于 Java。当 Maven 生成 Jar 时,您可以选择确定如何处理依赖项。您可以忽略它们——这对于预期在类路径中已经有其他依赖项可用的库很有用;您可以生成一个“fat jar”,它将所有依赖项解包,然后将它们与您的程序一起打包到一个 jar 中;您可以生成一个 Jar Manifest,其中包括 Java 在加载条目 Jar 时将使用的
class-path。这要求您还需要将 Jars 复制到指定位置
标签: java maven intellij-idea