为什么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并没有实际生效。


回答:

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

以上是 为什么maven 命令行 指定execution-id不生效? 的全部内容, 来源链接: utcz.com/p/945509.html

回到顶部