pom.xml からノードの値を抽出しようとしています:
<?xml version="1.0" encoding="UTF-8"?>
<project>
<parent>
<groupId>org.me.labs</groupId>
<artifactId>my-random-project</artifactId>
<version>1.5.0</version>
</parent>
...
</project>
シェル コマンドを使用して、XML から artifactId とバージョンを抽出する必要があります。次の要件/観察事項があります。
- シェル スクリプトは、作業で使用するビルド アセンブリ ファイル内で実行されるため、スクリプトは小さいほど優れています。
- 複数のシステム (通常は RHEL5) で使用されるため、デフォルトのイメージでネイティブに実行できるものを探しています。
- のようなタグは、pom の他の場所で発生する可能性があるため、これらのタグを単純に awk することはできません。
私は次のことを試しました:
xpath
私の Mac では動作しますが、RHEL マシンではデフォルトで使用できません。同様にxmllint --xpath
、これは の新しいバージョンでのみ利用できると思いますがxmllint
、これは私が持っておらず、強制することもできません。xmllint --pattern
有望に思えましたが、xmllint --pattern '//project/parent/version' pom.xml
(XML全体を出力する)またはxmllint --stream --pattern '//project/parent/version' pom.xml
(出力なし)から出力を取得できないようです。
これはSOに関するよくある質問だと思いますが、上記の点が、これらの回答を使用できない理由です。あなたの助けのためのTIA。