[解決済み] bashスクリプトでのエラー "終了コード126"
2022-02-11 03:20:44
質問
iOSプロジェクトにCPD(Copy-Paste-Detection)を組み込みたいのですが、どうすればいいですか?私はそれについて読んだ こちら と こちら .
コード中のCopyPasteを自動的に判断するために、bashスクリプトを使用しています。
echo "Checking files in ${SOURCE_ROOT}"
JARS_DIR=${PROJECT_DIR}/CPD
FULL_PATH_TO_CPD_XML_OUTPUT=${PROJECT_DIR}/cpd-output.xml
# Running CPD
java -classpath "${JARS_DIR}/ObjCLanguage-0.0.5-SNAPSHOT.jar:${JARS_DIR}/pmd.jar" net.sourceforge.pmd.cpd.CPD --minimum-tokens 100 --files "${SOURCE_ROOT}" -v --language ObjectiveC --encoding UTF-8 --format net.sourceforge.pmd.cpd.XMLRenderer > "${FULL_PATH_TO_CPD_XML_OUTPUT}"
# Running self :)
${BUILT_PRODUCTS_DIR} -cpd-xml "${FULL_PATH_TO_CPD_XML_OUTPUT}"
このコードで cpd-output.xml ファイルが作成されます。しかし、コンパイル時に "Command /bin/sh failed with exit code 126" というエラーが発生します。以下はログのコピーです。 http://pastebin.com/359k1Wni 私はここからコードを取った プロジェクト例 この文字列をコメントすると、エラーが発生します。
${BUILT_PRODUCTS_DIR} -cpd-xml "${FULL_PATH_TO_CPD_XML_OUTPUT}"
このエラーについてどんな情報でも見つけようとしましたが、答えのないこれらの問題のいくつかを見つけただけでした。私はbashスクリプトについて何も知らないのです。何かアドバイスがあれば幸いです。 ご清聴ありがとうございました。
追伸:以下のスクリプトの作者です。
<ブロッククオートXCodeとCPDを統合するために、Build(ビルド) プロジェクトと一緒にターゲットとなるスクリプト実行フェーズは、従来は はいくつかの部分から構成されている。実際にcpdを呼び出す 構文解析 cpd-output.xml 正しいフォーマットで出力される。
解決方法は?
問題は、間違ったスクリプトにありました。ログを追加した修正スクリプトを提供します。
echo "Checking files in ${SOURCE_ROOT}"
CPD_DIR=${PROJECT_DIR}/CPD
JARS_DIR=${PROJECT_DIR}/CPD
FULL_PATH_TO_CPD_XML_OUTPUT=${PROJECT_DIR}/cpd-output.xml
OBJC_JAR_LIBRARY=${JARS_DIR}/ObjCLanguage-0.0.5-SNAPSHOT.jar
echo [DEBUG] CPD_DIR = ${CPD_DIR}
echo [DEBUG] JARS_DIR = ${JARS_DIR}
echo [DEBUG] FULL_PATH_TO_CPD_XML_OUTPUT = ${FULL_PATH_TO_CPD_XML_OUTPUT}
echo [DEBUG] OBJC_JAR_LIBRARY = ${OBJC_JAR_LIBRARY}
echo [DEBUG] SOURCE_ROOT = ${SOURCE_ROOT}
# Running CPD
java -classpath "${OBJC_JAR_LIBRARY}:${JARS_DIR}/pmd.jar" net.sourceforge.pmd.cpd.CPD --minimum-tokens 200 --files "${SOURCE_ROOT}" -v --language ObjectiveC --encoding UTF-8 --format net.sourceforge.pmd.cpd.XMLRenderer > "${FULL_PATH_TO_CPD_XML_OUTPUT}"
CPD_EXECUTABLE="${CPD_DIR}/CPDObjective-C"
if [ ! -f "${CPD_EXECUTABLE}" ];
then
echo "CPD executable file is not found: " ${CPD_EXECUTABLE}
fi
echo "Running ${CPD_EXECUTABLE} -cpd-xml ${FULL_PATH_TO_CPD_XML_OUTPUT}"
"${CPD_EXECUTABLE}" -cpd-xml "${FULL_PATH_TO_CPD_XML_OUTPUT}"
のソースコードです。 サンプル コピーペースト検出
関連
-
[解決済み】文字列中の � を置換する方法
-
[解決済み] Bashスクリプトで引数を反復処理する方法
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで標準出力と標準エラーの両方をファイルにリダイレクトして追記する方法
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み] bashシェルスクリプトの全引数を伝搬させる
-
[解決済み] Bashスクリプトで、ある条件が発生したらスクリプト全体を終了させるにはどうしたらいいですか?
-
[解決済み】Bashスクリプトでクリップボードにパイプを接続する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】popBackStack()とreplace()の操作はどう違うのですか?
-
[解決済み】「'void' type not allowed here」エラーの原因とは?
-
[解決済み】宣言されたパッケージが期待されるパッケージと一致しない ""
-
[解決済み】 JAVA 変数宣言はここではできない
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。
-
[解決済み】Javaのswitch文。定数式が必要だが、定数である
-
[解決済み] JavaでSSLピアが正しくシャットダウンされない
-
[解決済み】intがnullであるかどうかを確認する方法
-
[解決済み】 executeQuery()でデータ操作文が発行できない。)
-
[解決済み】シェル変数に引用符で囲むのはいつ?