【问题标题】:what happens when java builds the jar (war)java构建jar时会发生什么(战争)
【发布时间】:2015-01-17 15:58:29
【问题描述】:

我是 maven 的新手,由于范围属性,我开始思考 java 如何构建 jars(或战争)。假设我为我的项目编写了源代码,它将被编译为 myProject.jar。对于我的项目,我需要另一个 jar externalProject.jar。所以我将 externalProject.jar 添加到我的构建路径中。

问题:当我编译我的项目得到myProject.jar时,是否将externalProject.jar包含在myProject.jar中,这样我只能交付myProject.jar并且它会运行?还是myProject.jar只是调用externalProject.jar的代码,exernalProject.jar必须和myProject.jar在同一个文件夹,也必须下发?

赫尔姆森

【问题讨论】:

    标签: java build compilation


    【解决方案1】:

    这将取决于您如何在 Maven 中配置依赖项。 在其 pom.xml 文件中为 myProject 配置依赖项时,为 externalProject 使用依赖项范围“运行时”,向 Maven 中的依赖项管理框架表明它不是编译所必需的,而是执行所必需的。 类似地,使用也是默认范围的“编译”表示项目被包含在类路径中。因此,如果您没有明确指定范围,则很可能您正在使用 externalProjects 依赖项的“编译”默认范围。在这种情况下,您的依赖项将作为 JAR 包含在您的项目中。

    我会推荐阅读Maven-Introuduction-To-Dependency-Mechanism

    【讨论】:

    • 独立于maven:这就是构建路径和类路径的区别?构建路径中的 jar 将位于“myProject.jar 内部”,并且必须提供类路径中的 jar?
    猜你喜欢
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 2023-03-03
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多