【问题标题】:multi-module maven project多模块maven项目
【发布时间】:2010-03-05 15:40:49
【问题描述】:

如果我的项目中有 6 个模块,是否可以只构建六个模块中的一个?不评论别人?

编辑

子模块本身不会工作,因为或父标签。我需要先安装父级以使其构建。不安装父级怎么办

【问题讨论】:

    标签: java eclipse maven-2


    【解决方案1】:

    是否可以只建造六分之一?不评论别人?

    我的理解是,您想从聚合项目(即反应堆构建)启动 maven,但只构建一个模块。这可以使用 -pl, --projects 项目列表 选项(参见advanced reactor options):

    mvn --projects my-submodule install
    

    这是一个非常强大的选项,尤其是与--aslo-make(也可以构建列出的模块所依赖的项目)或--also-make-dependents(也可以构建依赖于列出的模块的项目)结合使用时。根据您的更新,您实际上可能想要这样:

    mvn --projects my-submodule --also-make install
    

    从您要构建的模块的目录启动 Maven 当然是一种选择,但这不允许您执行上述操作,也不允许您构建所有模块的子集。对于此类用例,先进的反应堆选项是可行的方法。

    【讨论】:

      【解决方案2】:

      打开一个命令外壳,导航到子模块目录并执行mvn install(或任何您喜欢的生命周期)应该可以解决问题。

      【讨论】:

      • @Péter Török 我更新了我的问题.. 到目前为止,您的解决方案是最简单的.. 我无法构建子模块.. 我需要先安装父模块,因为子模块本身无法工作,因为或父标签.
      • @Gandalf StormCrow 那是一个更复杂的故事......我站在一边谦虚地看着@Pascal施展他的魔法:-)
      【解决方案3】:

      您可以通过进入此模块目录并运行mvn clean install 来简单地构建模块。

      但是,请注意,使用此方法,与其他模块的依赖关系将从您的本地存储库(或企业存储库)获取。

      我们举个简单的例子:

      project
        + commons
        + business
      

      现在,假设您在 root 目录中使用mvn clean install 命令构建整个项目。考虑到您所有的模块都在版本1.0

      现在,您移至版本 1.1。如果您只在business 项目上运行mvn clean install,它将尝试获取模块commons1.1。然后您将遇到错误,因为 Maven 在您的本地存储库中找不到任何版本 1.1

      【讨论】:

        【解决方案4】:

        在 Eclipse 中,假设您安装了 m2eclipse:右键单击相关模块并选择 Run As -> Maven package。

        【讨论】:

          猜你喜欢
          • 2018-02-06
          • 2021-02-09
          • 2011-01-04
          • 2017-10-20
          • 1970-01-01
          • 2014-09-14
          • 2016-06-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多