問題タブ [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.
java - マルチモジュール Maven プロジェクトで exec-maven-plugin を実行する際の問題
マスターpomと、マスターpomを参照するプロジェクト(およびpom.xmlファイル)をそれぞれ含む多数のサブディレクトリを持つマルチモジュールMavenプロジェクトがあります。
projectA には exec-maven-plugin の呼び出しが含まれています。これは Java ゴールを実行し、projectA のどこかに存在するテスト クラス (projectA/test/com/mycompany/Testclass.java) を正常に呼び出します。プラグインは次のように宣言されています: org.codehaus.mojo exec-maven-plugin 1.2.1
次のコマンドで maven を実行すると、正常に動作します。
mvn verify -P <profile name> -pl projectA -am
projectA に依存する 2 番目のプロジェクト projectB があります。上記と同じ、projectB の pom.xml ファイルに exec-maven-plugin セクションを構成しました。上記と同じコマンドで maven を実行すると (-pl パラメータの projectB を除く)、例外が発生しますjava.lang.ClassNotFoundException: com.mycompany.Testclass。
これは、pom.xml が projectA に依存しているにもかかわらず、projectB の maven を実行したときのクラスパスに projectA のディレクトリが含まれていないためです (実際には projectA.1 に依存し、これは projectA に依存します)。
projectB で Java ゴールではなく exec ゴールを使用するように切り替えてから、次のように引数にクラスパスを指定しようとしました。
それが完了したら、クラスを正常にロードしましたが、com.google.gson.JsonSyntaxException で ClassNotFoundException を取得しました
次のように、コマンドラインからクラスを実行した場合に発生するのと同じエラーになります。
java -classpath "projectA/target/projectA-6.6.1-bSOURCE-tests.jar;projectA/target/projectA-6.6.1-bSOURCE.jar" com.mycompany.Testclass
projectB では、exec ゴールではなく exec-maven-plugin の Java ゴールを使用したいと思いますが、何らかの方法でクラスパスを指定できるようにする必要があります。
どのように私はそれを行うことができますか?
ありがとう。
java - テストフェーズの前に Maven 実行クラス: exec-maven-plugin exec:java はクラスを実行していません
Jenkinsボックスで、Mavenで構築されたjUnit4テストを実行しています。私の目標は、テストを実行する前にテスト データベースを復元することです。
exec-maven-plugin が適しているようですが、実行できません。ポインタはありますか?例はたくさんありますが、mojo サイトのドキュメントはかなり薄いものです。
現在実行する必要があるクラスは次の場所にあります。
MyProject.src.test.java._tools.BuildTestEnvironment.java
私の pom.xml には以下が含まれます:
これを Jenkins で実行しても、実際には何も起こりません。ローカルで実行すると、
成功せずに試したこと:
Jenkins でビルドを実行します。実際には何も起こりません。プロジェクトがビルドされ、テストの実行が開始されますが、クラスが実行されません。
ビルドをローカルで実行します。Jenkins と同じ結果になります。そこに驚きはありません。
generate-test-resources をローカルで実行します: ClassNotFoundException。すなわち:
mvn exec:java 生成テスト リソース
java.lang.ClassNotFoundException: src.test.java._tools.BuildTestEnvironmentクラスを jar にコンパイルし、それを pom に追加します。
アップデート:
@ppuskar のコメントを読んだ後、buildxxx クラスを少し動かしてみました。src.main.java._tools.BuildTestEnvironment に移動した後も、同様のメッセージが表示されます。これが役立つ場合に備えて、私のビルドログは次のとおりです。
[デバッグ] 呼び出し: test.java._tools.BuildTestEnvironment.main()
[デバッグ] プラグインの依存関係は除外されます。
[デバッグ] プロジェクトの依存関係が含まれます。
[デバッグ] 収集されたプロジェクト アーティファクト [joda-time:joda-time:jar:2.3:compile、net.sf.jt400:jt400:jar:6.7:compile、junit:junit:jar:4.11:compile、org.hamcrest:hamcrest -core:jar:1.3:compile, com.fasterxml.jackson.core:jackson-core:jar:2.3.0:compile, com.fasterxml.jackson.core:jackson-databind:jar:2.3.0:compile, com .fasterxml.jackson.core:jackson-annotations:jar:2.3.0:コンパイル、org.hamcrest:hamcrest-all:jar:1.3:コンパイル、org.apache.logging.log4j:log4j-api:jar:2.0-rc1 :compile, org.apache.logging.log4j:log4j-core:jar:2.0-rc1:compile]
[DEBUG] 収集したプロジェクトのクラスパス [C:\workspace\VSP_UnitTest\target\classes]
[DEBUG] クラスパスへの追加: file:/C:/workspace/VSP_UnitTest/target/classes/
[DEBUG] プロジェクト依存アーティファクトの追加: joda-time をクラスパスに
[DEBUG] プロジェクト依存アーティファクトの追加: jt400 をクラスパスに
[DEBUG] プロジェクトの追加依存性アーティファクト: junit をクラスパスに
追加 [DEBUG] プロジェクト依存性アーティファクトを追加: hamcrest-core をクラスパスに
[DEBUG] プロジェクト依存性アーティファクトを追加: jackson-core をクラスパスに
[DEBUG] プロジェクト依存性アーティファクトを追加: jackson-databind をクラスパスに
[DEBUG] プロジェクトを追加依存性アーティファクト: jackson-annotations をクラスパスに
追加 [DEBUG] プロジェクト依存性アーティファクトを追加: hamcrest-all をクラスパスに
[DEBUG] プロジェクト依存性アーティファクトを追加: log4j-api をクラスパスに
[DEBUG] プロジェクト依存アーティファクトの追加: log4j-core をクラスパスに
[DEBUG] スレッドに参加 Thread[test.java._tools.BuildTestEnvironment.main(),5,test.java._tools.BuildTestEnvironment]
[警告] java.lang. ClassNotFoundException: test.java._tools.BuildTestEnvironment
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged( Native Method)
で java.net.URLClassLoader.findClass(URLClassLoader.java:354)
で java.lang.ClassLoader.loadClass(ClassLoader.java:424)
で java.lang.ClassLoader.loadClass(ClassLoader.java:357)
で.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:281)
java.lang.Thread.run(Thread.java:724) で
[情報] -------------------------------- ----------------------------------------
[情報] ビルドの失敗
[情報] -- -------------------------------------------------- --------------------
[情報] 合計時間: 2.602 秒
[情報] 終了時刻: 2014-05-15T14:38:50-05:00
[情報]最終記憶: 12M/152M
[情報] ----------------------------------------- -------------------------------
java - Maven がゴール org.codehaus.mojo:exec-maven-plugin:1.3 の実行に失敗しました
こんにちは、maven を使用して jersey Web サービス プロジェクトをコンパイルしていますが、Windows 2008 サーバーでコンパイル中にエラーが発生しました。
エラーは次のとおりです。
ここに私のMavenとJavaのバージョンがあります:
Windows 2008 での pom.xml の内容は次のとおりです。pom.xml の内容は、Mac とは若干異なります。(例: Java バージョン、:
maven - exec-maven-plugin を使用してファイル権限を付与できません
次の exec-maven-plugin 構成を使用してファイルのアクセス許可を付与しようとしています:
印刷します
chmod: '...my_path.../*.sh' にアクセスできません: そのようなファイルまたはディレクトリはありません
でも交換したら
by <argument>${somePath}/myfirst_script.sh</argument>
- すべて正常に動作します!
そのようなアプローチを使用する方法を明確にし、「*.sh」を使用して引数をより一般的にしてください。
編集:
依存関係をアンパックするために依存関係プラグインを使用するため、最初はこれが必要ですが、何らかの理由でファイルのアクセス許可が失われ、関連する JIRA のようです - https://jira.codehaus.org/browse/MDEP-109
パーミッションを戻す antrun のアプローチがあることは知っていますが、実際には見栄えが悪く、pom.xml で antrun プラグインを使用したくない...
maven - exec-maven-plugin はサードパーティのリポジトリを使用しません
いくつかのサードパーティのリポジトリが構成されています。それらからアーティファクトをダウンロードしているため、それらが正しく構成されていることはわかっています。しかし、exec-maven-pluginそれらのサードパーティのリポジトリを認識していないようです。Maven Central で依存関係を探し、そこに POM が存在しないことを通知します。もちろんそうではありません。サードパーティのレポにあります!exec-maven-pluginサードパーティのリポジトリを使用するように指示するために何か特別なことをする必要がありますか?
maven - Maven exec プラグイン スキップ パラメータ
私のpomには、うなり声を実行するためのmaven execプラグインがあります。mvn clean install を呼び出すときにプラグインの実行をスキップする方法はありますか? 構成に入れることはできません<skip>true</skip。mvn clean install -Dexec.skip=true のようなオプションを探しています。どんな手掛かり?
java - Maven exec プラグインが「src/」外のディレクトリにある構成ファイルにアクセスできるように Maven を構成するにはどうすればよいですか?
コードでプロパティファイルにアクセスしています
と
プロパティ ファイルがリソース ディレクトリにある場合、すべて正常に動作し、問題なく maven exec プラグインを使用してプログラムを実行できます。電話するしかない
しかし、このアプローチは大きな欠点です。プロパティファイルが含まれています
「config/config.properties」ファイルが「src」内になくても、jar に含まれていなくても、maven exec プラグインで使用できるように、maven 構成を変更するにはどうすればよいですか?
注:明確にするために、アプリケーションが本番環境で実行されるときに必要な構成ファイルがどこにあるのかわかりません。私はそれがクラスパスにあることを知っています。これが私が使用する必要がある理由でありgetResourceAsStream()、jarファイルに含めないようにする必要があります。