問題タブ [exec-maven-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven-2 - Maven - exec-maven-plugin で使用する引数を渡す
私のpomでは、ファイルを生成するJavaクラスを呼び出すためにexec-maven-pluginを追加しました。このクラスでは、いくつかのパラメータをメイン メソッドに渡す必要があります。そのうちの 1 つは、(プロジェクト外の) 入力ファイルの場所です。これまで、私はこれに相対パスを使用してきましたが、これは正常に機能します。
今、私は hudson を使用して戦争をインストール/パッケージ化し、展開し始めていますが、この相対パスを使用できなくなりました。シンプルに、次のようにmavenを呼び出すときに入力ファイルの場所を渡すだけだと思いました:
mvn clean package -Dlangdir=C:/somedir
次に、pom を次のように変更します。
ただし、このパラメーターはここでは単に無視されます。メインクラスが引数として受け取るパスはnull/PMLanguage.xlsになります。パラメータ自体はmavenで利用できます.antrunプラグインでエコーを使用して成功をテストしました。正しいパスがエコーされました。
maven に渡すパラメータは、pom のどこで参照しても、デフォルトでは使用できませんか?
助けてくれてありがとう、
Stijn
java - Mavenでexec:javaプラグインを呼び出すときにsystemPropertiesを渡す方法は?
exec:javaプラグインを使用して、コマンドラインからメインクラスを呼び出したいと思います。を使用してコマンドラインから引数を渡すことができ-Dexec.args="arg0 arg1 arg2"
ます。システムプロパティを渡す方法がわかりません。'-Dexec.systemProperties = "key = value"`を試しましたが、効果がありませんでした。
pom.xml
このように見えます:
java - Mavenで実行されたプロセスに環境変数を渡す
私はこれについて約 1 時間壁に頭をぶつけていました。単純なプロパティ ( java.library.path
) を exec-maven-plugin に渡そうとしています。目標は、Netbeans の右クリック ファイル > ファイルの実行手順と統合することです。
だから私は私のPOMを次のように設定しました:
(私は実行引数を見ることができるように古いバージョンを使用していますが、1.2 で完全に再現可能です)
次に、ファイルを右クリックし、[ファイルの実行] をクリックします。Netbeans は次のプロセスを開始します。
(元の完全なクラスパスの実行が変更されたexec:exec
ため、私の構成が適用されることを願っています)
しかし、結果として実行されるプログラムは次のようになるため、私の環境変数は明らかに無視されます。
私はもう試した
- environmentVariable タグ内で個別の Key タグと Value タグを使用する
- environmentVariables タグ内でキーと値のタグを直接使用します (試してみる価値があります)
- 相への結合
- Maven 引数として渡し、代わりに exec:java を使用する
- プロジェクト構成ページで -Djava.library.path=native/win32-x86 を実行引数および VM オプションとして渡す
そしてすべて失敗しました。私はここで本当に途方に暮れています。
これがmavenでJNIを使用することの欠点だと思います.テスト、ランタイム、モジュール実行POM、および親POMに引数として渡す必要があります。
私の質問:java.library.path
実行されたファイルにプロパティを渡すにはどうすればよいですか? Netbeans の Run File 機能と統合できればいいのですが (そのため、POM でクラス名を変更し、ビルドしてから実行する必要はありません)。
java - Maven から、src/test/java の下にあるクラスを実行するにはどうすればよいですか?
コードベースを継承しました:)
public static void main(String[] args)
src/test/java/ の下に、実行する必要があるファイルがあります (その中のメソッドではなく、その を実行する必要があります@Test
)。
私が持っている最も近いものは次のとおりです。
しかし、それは失敗し、RunFile が src/main/java/com/me/packagex/ (/test/ ではなく /main/ に注意) の下に存在するクラスを使用したいためと思われます。その下のファイルは、RunFile と同じパッケージ、つまり「package com.me.packagex;」にあります。
を削除すると、-Dexec.classpathScope="test"
RunFile がまったく見つかりません。2 つのスコープを指定する必要があるようですが、「テスト、コンパイル」は受け入れられません。
私がこれを受け継いだ (惜しくも亡くなった) 人は、これを Eclipse から実行していました。コマンドラインから実行する方法が必要です。
これが明確に説明されることを願っています。
tyvm、
これは有望です。パスカル、私はあなたの例を試しましたが、うまくいきません。
今見てみると、Dog が見つからないというよりは、Demo が見つからないということです。
java - -e スイッチを使用して Eclipse から Maven を実行する方法
-e スイッチを使用して exec-maven-plugin で exec ゴールを実行することは可能ですか? を取得していMojoExecutionException
ます。
maven - コマンドラインで機能するドメインのバッチ作成。ただし、execmavenプラグインを介さない
Glassfishドメイン作成シーケンスを含む小さなファイルを作成しました。これは次のようになります。
私は通常、Glassfishasadminマルチモードでこれらすべての手順を実行し ます。
次の手順を使用してすべてを手動で実行する場合
実行には2分もかかりません。
ただし、次のpom構成を使用してMavenで実行する場合
ドメインの起動時に停止したままになり、ログの最後の行が
Process Explorerは、exec mavenプラグインによって生成されたすべてのプロセスについて、CPUの消費がまったくないことを示します。
その上、execmavenプラグインが作成したコマンドラインは
手で入力したものと全く同じです。
それで...何がそのプロセスをハングさせる可能性がありますか?そして、それを修正するために私は何ができますか?
[編集] start-domain命令に--verboseフラグを追加すると、プロセスが次の行をハングさせる前の最後の行として表示されます。
誰かがJMXの後に何を開始するのか、そして何がJMXの開始を妨げる可能性があるのかを知っていれば、その奇妙なバグを修正するのに役立つと思います。
maven-2 - Maven: exec プラグインを使用してディレクトリをコピーする
Maven 3.0.3 を使用しています。Maven exec プラグインを使用して、あるディレクトリの内容を別のディレクトリにコピーするのに問題があります。悲しいことに、このプラグインを pom.xml に含めると…</p>
機能していません。以下のエラーが表示されます…</p>
プラグイン構成を変更して、あるディレクトリの内容を別のディレクトリにコピーする方法を知っている人はいますか? ありがとう - デイブ
java - Mavenビルドプロセスの一部としてrubyスクリプトを呼び出すにはどうすればよいですか?
編集2:問題を見つけました。簡単な答えは<id>
、新しく構成した実行のが不足していることが問題の原因であったということです。他の誰かに役立つ場合に備えて、ここに質問を残しておきます。
いくつかのjUnitソースファイルを生成するrubyスクリプトがあります。
デフォルトのライフサイクルのgenerate-sourcesフェーズで、 exec-maven-pluginを使用してこのrubyスクリプトを呼び出そうとしています。これを実現するためにPOMに追加したものは次のとおりです。
これは、netbeans(clean install
)で「メインプロジェクトのクリーンアップとビルド」を実行しているときに機能しているようですが、プロジェクトを実行すると(process-classes org.codehaus.mojo:exec-maven-plugin:1.1.1:exec
プロパティを使用して:)
(POMで指示したように)exec.executableとして使用しようとするため、実行は失敗します。ruby
では、 ( jUnitテストを実行する前に実行するために)一時的に使用するにはどうすればよいですか?それ以外の場合は使用しますか? generate-test-sourcesフェーズ中にスクリプトを呼び出す「適切な」方法は何ですか?ruby
ruby supporting_files/ruby/CreateUnitTests.rb
java
編集:問題は、呼び出されている実行可能ファイルを変更するだけではないようです...
私は、rubyインタープリターを呼び出すだけの簡単なJavaプログラムを作成し、コマンドライン引数として受け取ったもの(rubyファイル名)を渡します。
これにより、POMの実行可能ファイルを変更することを回避できました。
醜い、私は知っています。とにかく、クリーン/ビルドはまだ期待どおりに機能しますが、「実行」はまだ失敗しています!エラーメッセージは次のとおりです。
したがって、実行に戻りますjava
が、それでも失敗します。私が気付いている奇妙なことの1つorg.codehaus.mojo:exec-maven-plugin:1.1.1:exec
は、POMでバージョンを使用するように指示しているにもかかわらず、目標を実行していることです1.2
...
maven - pre-integration-test で失敗した後に確実にクリーンアップするにはどうすればよいですか?
Jenkins 経由で実行されるように、maven (v2) で統合テストをセットアップしようとしています。Maven POM の pre-integration-test フェーズで、(exec-maven-plugin を介して) 大きなソフトウェア スタックを立ち上げています。残念ながら、このブリングアップは時々失敗し (明らかにもっとテストが必要です)、ビルドはすぐに失敗します。問題は、スタックが完全にアップしておらず、障害後に完全にダウンしていないことです。exec-maven-plugin への別の呼び出しでクリーンアップできますが、maven ビルドがすぐに終了するため、チャンスがありません。
いずれかのテストが失敗した場合にクリーンアップが確実に行われるように、maven-failsafe-plugin に頼っていますが、事前統合テストが失敗したときにクリーンアップするにはどうすればよいですか?