【问题标题】:Maven install in modular projectMaven 安装在模块化项目中
【发布时间】:2016-08-16 23:36:56
【问题描述】:

我得到了一个多层次的maven项目如下;

Parent 
    Core (generate core jar)
            web-service (generate service jar)
                  web-app(generate WAR)
    ..

在 Parent POM 中,我将模块定义为 core、web-service 和 web-app。

在 web-app 模块中,我有 core.jar 和 service.jar 的依赖项。

有没有办法通过父级在 web-app 中生成 war 文件? 当我尝试在 web-app 中运行 mvn install 时。我遇到 core.jar 和 web-service jar 的依赖问题。也就是说。我必须先在父项目中运行 mvn install 然后在 web-app 项目中运行 mvn war:war?

【问题讨论】:

    标签: java eclipse maven


    【解决方案1】:

    如果您在子目录中运行 maven 命令,它不会知道兄弟或父依赖项。我发现使用多模块项目在最外层的父根目录中运行 maven 命令最容易。如果您只是想构建一些后代项目(我们称之为foo),那么您可以从父项目中执行以下操作:

    mvn install -pl :foo -am
    

    pl 标志是您要构建的工件列表,am 标志意味着也构建它们的依赖项。

    【讨论】:

    • 目前,我在父级运行 install,然后在 web-app 级运行 war:war。所以我可以使用类似于mvn install -pl :foo -am 的东西在网络应用级别安装生成战争?
    • 是的,如果我理解正确的话。只需将 foo 更改为 web 应用程序的 artifactId 并从父 Pom 目录运行它
    • 如果我运行install -pl :foo -am 父级,它会安装foo 的所有jar 及其依赖项,现在如何同时创建WAR 文件?我只在foo 项目中获得了战争目标?
    • 如果你的 pom 文件配置正确,war 会自动在包阶段创建吗?如果不是你的构建是错误的..但是不显示你的 pom 文件就不可能说它是怎么回事?
    猜你喜欢
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 2022-02-03
    • 2011-11-19
    • 2021-01-04
    • 2013-03-10
    • 2015-10-21
    • 2012-03-06
    相关资源
    最近更新 更多