【问题标题】:Cannot skip repackage goal of spring-boot-maven-plugin无法跳过 spring-boot-maven-plugin 的重新打包目标
【发布时间】:2020-06-09 07:04:12
【问题描述】:

我有一个多模块 Maven 项目,其中包含一个由多个 Spring Boot 服务组成的应用程序。我正在尝试为服务设置集成和端到端测试,并使用组合 Maven 插件来编排。

我有一个模块,旨在仅包含对执行某些工作的协作服务组的端到端测试。它仅包含测试代码和资源。我使用故障安全插件 (org.apache.maven.plugins:maven-failsafe-plugin) 执行集成测试,使用 Spring Boot Maven 插件 (org.springframework.boot:spring-boot-maven-plugin) 启动和停止“主”服务,使用 Maven exec 插件 (org.codehaus.mojo:exec-maven-plugin) 启动端到端测试中使用的其他服务。

我遇到了一个似乎与 Spring Boot 插件的 repackage 目标有关的问题。 e2e 模块没有什么需要重新打包的,所以我想跳过这个目标。应该不会太难吧?

      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>repackage</goal>
            </goals>
            <configuration>
              <skip>true</skip>
            </configuration>
          <execution>
          ...

好吧,这行不通。尽管如此,它还是会重新打包。

问题在于 Maven 构建失败,因为它找不到要重新打包的“主”类(我相信作为可执行 jar)。嗯,没有这个模块没有主类。

更重要的问题是:为什么&lt;skip&gt;true&lt;/skip&gt;会被忽略?

【问题讨论】:

  • 上面执行后可以加&lt;id&gt;repackage&lt;/id&gt;吗。
  • 成功了。显然,我没有怀疑 id 元素的重要性。我认为这只是一种以更易于阅读的方式“标记”项目的便捷方式。我假设“repackage”的id元素内容是关键。
  • 你能把我的建议标记为已回答吗?
  • 我该怎么做?据我所知,您实际上必须发布您的答案作为答案。
  • 我认为 execution-id 仅作为区分不同执行的标签,但似乎这取决于使用的插件,如 Spring 插件,它期望 execution-id 完全是“重新打包”。感谢这有助于解决我的问题。

标签: maven-2 spring-boot-maven-plugin


【解决方案1】:

执行上述目标后需要添加&lt;id&gt;repackage&lt;/id&gt;

【讨论】:

    【解决方案2】:

    我也面临同样的问题。我通过在&lt;plugins&gt;上方使用&lt;pluginManagement&gt;标签解决了它

          <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        </pluginManagement>
    

    【讨论】:

      猜你喜欢
      • 2015-08-01
      • 2020-07-08
      • 2019-04-17
      • 2019-12-02
      • 2023-03-17
      • 2014-09-03
      • 2021-04-27
      • 2020-06-17
      • 1970-01-01
      相关资源
      最近更新 更多