为什么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 > "${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 > 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