当我们打包/测试时Maven跳过模块

发布于 2025-01-11 00:49:34 字数 699 浏览 0 评论 0原文

我的 Maven 项目中有多个模块。

  <modules>
    <module>module-1</module>
    <module>module-2</module>
    <module>module-3</module>
  </modules>

当我进行打包或测试等时,我想跳过 1 个模块,例如 module-3。下面的配置文件选项似乎不起作用。

  <profiles>
    <profile>
      <id>default</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <modules>
        <module>module-1</module>
        <module>module-2</module>
      </modules>
    </profile>
  </profiles>

如何使这项工作有效或者有其他选择吗?

I have multiple modules in my maven project.

  <modules>
    <module>module-1</module>
    <module>module-2</module>
    <module>module-3</module>
  </modules>

I would like to skip 1 module , say module-3 when i do package or test etc. This below profile option does not seem to work.

  <profiles>
    <profile>
      <id>default</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <modules>
        <module>module-1</module>
        <module>module-2</module>
      </modules>
    </profile>
  </profiles>

How to make this work or are there any alternatives?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

×纯※雪 2025-01-18 00:49:34

阅读您的评论后,让我提出以下建议:

  1. module-3 是一个带有集成测试的模块。可以与其他模块一起编译它,它会非常快,并且可能您无论如何都会需要它,否则它最终会停止编译。另外,我认为你不应该“玩”这样的模块结构,因为IDE应该打开所有模块(可能你打开这个“main”pom.xml
  2. 话虽如此,你可能只想使用某种标志来运行测试。在这种情况下,您可以定义一个配置文件来运行集成测试而不是运行模块。
  3. 在 Maven 中,集成测试通常由 failsafe-plugin 管理。因此,您可以配置此插件,使其仅在某些属性上实际执行。可以使用 Maven 配置文件来完成。

After reading your comment, let me suggest the following:

  1. module-3 is a module with integration tests. Its ok to compile it with other modules, it will be pretty fast and probably you'll want it anyway, otherwise it will eventually stop to compile. In addition, I don't think you should "play" with module structure like this, because the IDE should open all the modules (probably you open this "main" pom.xml)
  2. Having said that you will probably want to run the tests only with some kind of flag. In this case you can define a profile for running integration tests instead of running the module.
  3. In maven integration tests are usually managed by failsafe-plugin. So you can configure this plugin so that it will be actually executed only upon some property. It can be done with maven profiles.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文