3

Maven プロジェクトを作成しましたが、外部スクリプトを実行しようとしています。この外部スクリプトでは、read コマンドを使用して質問し、回答を得ています。

exec-maven-pluginでsudo mvn パッケージを実行すると機能します

しかし、しかし、しかし :

  • sudo mvn packageを実行すると、スクリプトが読み取りコマンドで停止しません。
  • exec-maven-plugin でsudo mvn release:prepareを実行すると、スクリプトが読み取りコマンドで停止しません。
  • maven- antrun -plugin でsudo mvn release:prepareを実行すると、スクリプトが読み取りコマンドで停止しません。

そして明らかに、私はリリースを行う必要があります:)

読み取りコマンドの他の構文を使用して、スクリプトの最初の行 (#/usr/bin/bash、sh、...) を変更しようとしました...

誰かが私を助ける解決策を持っていますか???

ここに私の pom.xml の関連部分があります

<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.8</version>
  <executions>
    <execution>
      <id>initialisation</id>
      <phase>initialize</phase>
      <configuration>
        <tasks>
        <exec dir="${project.basedir}" executable="${project.basedir}/livraison/outils/0_init_livraison.ksh" failonerror="true">
          <arg line="${project.name} ${project.version} ${ancienneVersion}" />
        </exec>
       </tasks>
      </configuration>
      <goals>
        <goal>run</goal>
      </goals>
    </execution>
  </executions>
</plugin>

ここに私の 0_init_livraison.ksh の関連部分があります

#!/bin/ksh

echo -e "| EXECUTION DU SCIPT generation_livrable.ksh \n"

echo "SHELL : $SHELL"
boucle="boucler"
while [ $boucle -eq "boucler" ]
do
    echo -ne "  Souhaitez-vous forcer la procedure (oui/non)? "
    read rep1

    case "$rep1" in
    o|O|y|Y|oui|Oui|OUI|yes|Yes|YES)
    echo ""
    break
    ;;

    n|N|non|Non|NON|no|No|NO)
    echo -e "  Abandon de la procedure..."
    boucle=""
    exit 1
    ;;
    *) 
    echo -e "  Reponse incomprehensible.\c"
    esac
done

sudo mvn パッケージを実行したときのコンソールの最後の行 (その後、何も起こりません。無限の while ループのためにブロックされているようです)

[INFO] --- maven-antrun-plugin:1.8:run (initialisation) @ MyProject---
[WARNING] Parameter tasks is deprecated, use target instead
[INFO] Executing tasks

main:
   [exec] | EXECUTION DU SCIPT generation_livrable.ksh
   [exec]
   [exec] SHELL : /bin/bash

読んでくれてありがとう:)

編集 :

maven-antrun-plugin でプロパティを使用しようとしました。しかし、私は同様の問題を抱えています: mvn release:prepare 操作中に antrun 入力タスクが機能しません

4

2 に答える 2