gpt4 book ai didi

java - Maven:打包和模块依赖

转载 作者:行者123 更新时间:2023-12-01 14:53:51 25 4
gpt4 key购买 nike

我有一个由几个模块组成的 Maven 项目。主要结构和设置是这样的:

  • /project/pom.xml :package=pom,列出所有子模块,版本:TRUNK-SNAPSHOT
  • /project/core-module/pom.xml : 包装=jar
  • /project/war-module/pom.xml :包装= war ,取决于core-module${project.version}

如果这很重要的话,我会使用 IntelliJ 进行开发。

当我现在开发/运行/调试war-module时同时我更改了 core-module 中的代码事情变得失控。正在运行war-module应用程序(通过 jetty:run-exploded 运行)使用 core-module这是“安装”在我本地的 ~/.m2/ repository而不是当前版本。我是否在 IntelliJ 中执行“重建项目”或 mvn clean 并不重要。在运行之前。

我的问题是:我必须 mvn install每次我都可以绕过已安装的软件包还是必须更改打包选项?

最佳答案

长话短说,答案是:是的,在多模块项目中,您必须每次都运行 mvn install ,以便您的 war-module 的依赖项> 编译并安装在本地存储库中。

但是,对于本地测试,我通常建议使用 IDE 功能来测试我们的本地更改。 IntelliJ 非常易于配置,并且支持许多不同的应用程序服务器。

原因是:想象一下在一个大型团队中工作,使用企业共享存储库来保存公共(public)依赖项,而不需要将它们发布到 Maven 中心。如果您的任何同事对 core-module 进行了更改,提交它们并通过您的内部共享存储库使它们可用,那么 Maven 将下载该依赖项,然后用于运行 Jetty 插件。

这样做的好处是您将使用这些依赖项的最新版本进行测试,坏处是这些依赖项的代码与工作副本中的代码不同。

关于java - Maven:打包和模块依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14503179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com