Bash脚本从Maven assembly.xml获取文件集的outputDirectory标记值

问题描述 投票:0回答:1

我需要一个Bash脚本来从Maven assembly.xml获取文件集下的outputDirectory标记的值,因此我可以处理创建的文件。

我不是指开始和结束标签之间的实际字符集,但是如果标签为空,则为默认值;如果标签中为1,则为变量的值。

我创建了一个具有不同fileSet标记的程序集xml,只是为了显示我需要处理的各种情况。我想要一个脚本,该脚本将为我提供Maven看到的输出目录的路径

<assembly>
    <id>${deploy.name}</id>
    <formats>
        <format>zip</format>
    </formats>
    <fileSets>
        <fileSet>
            <outputDirectory></outputDirectory>
        </fileSet>    
        <fileSet>
            <outputDirectory>/</outputDirectory>
        </fileSet>
        <fileSet>
            <outputDirectory>/examples</outputDirectory>
        </fileSet>
        <fileSet>
            <outputDirectory>>${Common.shared.location}</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>

我该怎么做?

谢谢

bash maven maven-assembly-plugin
1个回答
0
投票

您可以将sed与正则表达式一起使用:

for match in $(sed -n 's|<outputDirectory>\(.*\)</outputDirectory>|\1|p' assembly.xml) ; do
  echo "$match"
done

说明:

sed 's|...|...|p'打印与正则表达式<outputDirectory>\(.*\)</outputDirectory>匹配的内容,该匹配项匹配两个<outputDirectory>标记之间的任何文本。 for match in ...遍历匹配项并将其打印到标准输出。

© www.soinside.com 2019 - 2024. All rights reserved.