为什么maven 命令行 指定execution-id不生效?

新手上路,请多包涵

Maven 3.3.1新增一个特性 可以使用@后缀指定id。
我的pom.xml文件的部分代码如下:

  <execution>
    <id>cds.build</id>
    <goals>
      <goal>cds</goal>
    </goals>
    <configuration>
      <commands>
          <command>deploy --to h2 --dry &gt; "${project.basedir}/src/main/resources/schema-h2.sql"</command>
      </commands>
    </configuration>
  </execution>

  <execution>
    <id>schema.sql</id>
    <goals>
        <goal>cds</goal>
    </goals>
    <configuration>
      <commands>
          <command>deploy --to postgres --dry &gt; srv/src/main/resources/schema.sql</command>
      </commands>
    </configuration>
  </execution>

有两个相同的goal但是对应执行的命令参数不一样,我执行了 mvn cds:cds@schema.sql 但是没有按照预期执行 <id>schema.sql</id>中的命令

PS D:\VSCode\CAPTEST\TEST\bookshop\srv> mvn cds:cds@schema.sql
[INFO] Scanning for projects...
[INFO] 
[INFO] -------------------------< customer:bookshop >--------------------------
[INFO] Building bookshop 1.0.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- cds:2.4.1:cds (schema.sql) @ bookshop ---
[INFO] CdsMojo: Identified D:\VSCode\CAPTEST\TEST\bookshop as reactor base directory.
[INFO] CdsMojo: Using directory containing a .cdsrc.json as working directory: D:\VSCode\CAPTEST\TEST\bookshop
[INFO] CdsMojo: Searching npx.cmd on local file-system.
[INFO] CdsMojo: Found D:\Program Files\nodejs\npx.cmd
[INFO] CdsMojo: Executing [D:\Program Files\nodejs\npx.cmd, -c, cds version] in working directory D:\VSCode\CAPTEST\TEST\bookshop
[INFO] CdsMojo: Using configured working directory: D:\VSCode\CAPTEST\TEST\bookshop
[INFO] CdsMojo: Executing [D:\Program Files\nodejs\npx.cmd, -c, cds deploy --to h2 --dry > \"D:\VSCode\CAPTEST\TEST\bookshop\srv/src/main/resources/schema-h2.sql\"] in working directory D:\VSCode\CAPTEST\TEST\bookshop
[INFO] CdsMojo:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  22.225 s
[INFO] Finished at: 2024-01-09T15:58:16+08:00
[INFO] ------------------------------------------------------------------------

从日志中来看maven识别到了我的参数@schema.sql
[INFO] --- cds:2.4.1:cds (schema.sql) @ bookshop ---
但最终执行的命令还是第一个execution中的命令,这是因为什么?因为我对maven并不是很了解,会有哪些配置影响到命令行的执行

我调换过这两个execution的位置,发现实际执行的是第一个execution中的命令,也就是说命令行中指定execution-id并没有实际生效。

阅读 1k
1 个回答
新手上路,请多包涵

这个回答里或许就是原因,某些目标不支持多配置执行?上述回答里提供了一些解决方法,我只是想搞懂为什么指定id不可以,没有实际的业务需求,且我目前的知识和时间不足以支撑我继续研究,所以暂时放弃了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题