如何从多模块项目中使用的所有 pom.xml 文件中提取 artifactId(使用 shell 脚本)?
How to extract the artifactId from all pom.xml files using in a multimodule project (using shell script)?
我需要从多模块项目中的所有 poms 中提取 artifactId。
项目结构与此类似,但结构可能不同(取决于项目):
project
|------->pom.xml
|------->subproject1
|------->pom.xml
|------->folder1
|------->pom.xml
|------->subproject2
|------->pom.xml
|------->folder2
|------->pom.xml
|------->subproject3
|------->pom.xml
|------->folder3
|------->pom.xml
|------->subproject4
|------->pom.xml
|------->folder4
|------->pom.xml
|------->subproject5
|------->pom.xml
|------->folder5
|------->pom.xml
我正在使用此命令提取单个模块项目中的信息:
MVN_ARTIFACTID=$(mvn -q \
-Dexec.executable="echo" \
-Dexec.args='${project.artifactId}' \
--non-recursive \
org.codehaus.mojo:exec-maven-plugin:1.3.1:exec)
然后我将这个变量用于 Bamboo Plan 中的其他操作。
如何对多模块项目执行类似的任务?我需要提取变量中所有poms的artifactId。
我知道这个 post 但这不是同一个问题:
How to extract the GAV from a pom.xml file in a shell script
谢谢。
只需删除非递归选项:
MVN_ARTIFACTID=$(mvn -q -Dexec.executable="echo" -Dexec.args='${project.artifactId} ##' org.codehaus.mojo:exec-maven-plugin:1.3.1:exec)
echo $MVN_ARTIFACTID| sed 's/##/\n/g'
添加了 ## 作为小 hack,以便第二行可以以更易读的格式提供 artifactId 名称。否则所有模块将在同一行中回显。
Module-1
Module-2
Module-3
应该这样做(改编自问题中引用的答案):
grep -v '\[' <( find . -type f -name 'pom.xml' -exec mvn -f{} help:evaluate -Dexpression="project.artifactId" \; )
请注意,其他答案在 Maven 3.5.4 中对我不起作用。
我需要从多模块项目中的所有 poms 中提取 artifactId。
项目结构与此类似,但结构可能不同(取决于项目):
project
|------->pom.xml
|------->subproject1
|------->pom.xml
|------->folder1
|------->pom.xml
|------->subproject2
|------->pom.xml
|------->folder2
|------->pom.xml
|------->subproject3
|------->pom.xml
|------->folder3
|------->pom.xml
|------->subproject4
|------->pom.xml
|------->folder4
|------->pom.xml
|------->subproject5
|------->pom.xml
|------->folder5
|------->pom.xml
我正在使用此命令提取单个模块项目中的信息:
MVN_ARTIFACTID=$(mvn -q \
-Dexec.executable="echo" \
-Dexec.args='${project.artifactId}' \
--non-recursive \
org.codehaus.mojo:exec-maven-plugin:1.3.1:exec)
然后我将这个变量用于 Bamboo Plan 中的其他操作。
如何对多模块项目执行类似的任务?我需要提取变量中所有poms的artifactId。
我知道这个 post 但这不是同一个问题: How to extract the GAV from a pom.xml file in a shell script
谢谢。
只需删除非递归选项:
MVN_ARTIFACTID=$(mvn -q -Dexec.executable="echo" -Dexec.args='${project.artifactId} ##' org.codehaus.mojo:exec-maven-plugin:1.3.1:exec)
echo $MVN_ARTIFACTID| sed 's/##/\n/g'
添加了 ## 作为小 hack,以便第二行可以以更易读的格式提供 artifactId 名称。否则所有模块将在同一行中回显。
Module-1
Module-2
Module-3
应该这样做(改编自问题中引用的答案):
grep -v '\[' <( find . -type f -name 'pom.xml' -exec mvn -f{} help:evaluate -Dexpression="project.artifactId" \; )
请注意,其他答案在 Maven 3.5.4 中对我不起作用。