問題タブ [maven-embedder]

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.

0 投票する
1 に答える
1849 参照

java - MavenCli (maven-embedder) を介して Maven タスクを実行できない

MavenCli.doMainプログラムでMaven Embedder 3.3.3を使用してMavenゴールをプログラムで実行していますが、メソッドを実行するたびに次のエラーが発生します:

-Dmaven.multiModuleProjectDirectoryシステム プロパティが設定されていません。$M2_HOME環境変数とmvnスクリプトの一致を確認してください。

0 投票する
1 に答える
779 参照

java - Maven Embedder - hibernate3:hbm2java をプログラムで実行

** アップデート **

エラーの再現を試み、最小限、完全、かつ検証可能な例を作成しようとしました。残念ながら、最初から再起動する手法を実行した後でも、自分でエラーを再現することさえできないようです...

hibernate3:hbm2java コマンドを手動で実行すると、アプリケーションが動作します。

それでも、プログラム的には機能しないようです。

アプリケーションを実行すると、巨大なエラー ログが表示されます。上の数行は次のとおりです。

私の設定をこのレポにプッシュしました。機能するには、pw: "password" を含む (in mem) MySQL データベースが必要です。

https://github.com/Weirdfishees/reverse-engineering.git

これが私の構成です:

ポンポン:

hibernate.cfg.xml

reveng.xml

そして、application.java

私の質問は同じままです。

上記の構成で hibernate3:hbm2java をプログラムで実行するにはどうすればよいですか?

-- 再現できませんが、追加情報 --

序章

こんにちはスタックオーバーフローユーザーの皆さん、Maven Embedder の使い方について質問があります。

実際のコード部分に要約する前に、私の質問の文脈を共有したいと思います。

ユーザーからの入力を受け取る GUI アプリケーション (javaFX) を構築しています。この入力に基づいて、アプリケーションは 2 つの hibernate 構成ファイル (hibernate.cfg.xml および reveng.xml) を動的に生成します。これらの構成ファイル (接続の詳細を提供する) に基づいて、次のアプリケーションの望ましい機能は、データベースを自動的に(ユーザーの操作なしで) リバース エンジニアリングし、すべてのテーブルの POJO クラスを作成することです (ボトムアップ開発)。

mvn hibernate3:hbm2java 引数を手動で実行すると (コマンド ラインを使用するか、単に eclipse で -> maven build.. -> 目標 mvn hibernate3:hbm2java として実行)、必要なすべてのクラスを含む目的のパッケージが作成されます。

ただし、目標は、手動で行うのではなく、mvn hibernate3:hbm2java をプログラムで実行することです。

リサーチ

次のオプションを試しました。

WindowsでJavaコードからMavenを実行していますか?

このオプションはエラーをスローしませんが、プログラムで何も起こらないようです (Eclipse でビューを更新した後、目的のクラスが存在しません...)

このオプションが機能する場合でも、アプリケーションのコンテキストにより、Maven Embedder を使用することを好みます (アプリケーションはクロスプラットフォームで使用されます)。

さらに、私は user3254289 からの回答を使用しないことを好み、 Maven Invoker を使用するよう提案しています。

質問

質問に対するMariuszSの回答に基づいて、Javaからmavenを実行する方法は?

アプリケーションを次のように構成しました。

pom の依存関係:

https://github.com/mariuszs/maven-cli-exampleから取得した次の(調整された)メソッドを使用

次のエラーが表示されます。

Maven 3.0.4 に基づく NoSuchMethod: ... java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet.copyOf(.. )

MAVEN_HOME 変数に関していくつかのチェックを実行しました。cmd と eclipse の両方で問題なく mvn コマンドを実行できるので、これらの設定は正しいと思います (間違っていたら訂正してください)。

メイヴン

ジャワ

このエラーを克服し、Java ランタイムから mvn hibernate3:hbm2java を自動的に起動するという私の目的を達成する方法を知っている人はいますか?

TL;DR

Maven Embedder を使用しているときに java.lang.NoSuchMethodError を修正するにはどうすればよいですか?

与えられた:

0 投票する
1 に答える
609 参照

java - Maven Embedder: コマンド オプションを追加する方法

私は次のようにMaven Embedderを使用しています:

これは機能し、コマンドラインコマンドを実行するのと同じです

ディレクトリ内

ただし、Maven Embedder がコマンド ライン コマンドと同等の機能を実行するように、Maven にオプションを指定する必要があります。

これはどのように行うことができますか?

0 投票する
1 に答える
308 参照

scala - MavenCli - stdout、stderr

私は を使用しようとしておりMavenCliByteArrayOutpurStream-s asstdoutおよびを指定していstderrます。一部のレコードがそれらのストリームに書き込まれたことを確認するテストがあります。テストが 1 つあれば、すべて問題ありません。しかし、別のテストを導入すると、stdout に何も書き込まれないため失敗します。

ここにスニペットがあります(Scala):

"write something"テストをコメントアウトすると、"write something else"パスします。

"write something else"testをコメントアウト(およびコメント解除"write something") すると、"write something"パスします。

両方がコメント解除されて実行された場合、一方が失敗します ("write something else"シーケンシャルであるため)。

println-s ofoutStreamをmaven実行後に追加すると、原因outStreamは空であるようです...

理由、またはさらに重要なことに、回避方法がわかりません。

何か案は?...

前もって感謝します、オハッド

0 投票する
1 に答える
1327 参照

java - Maven Embedded 3.3.9 - 可能ですか?

そのため、シェルラッパーを使用するのではなく、コードにmavenを埋め込もうとしていますが、実際に機能させるのに問題があります。

ソースコード

ブランチはmaster機能しますが、古いバージョンの maven (3.1.1) であり、より新しいバージョンを使用したいと考えています。

339ブランチには、pom.xml で定義されたそのバージョンについて突き止めることができるすべての依存関係があります。

ただし、依存関係をいじっても、次のエラーを回避するのに役立ちません。

私はたくさんのメーリングリストを見つけて読むことができるすべての SO の質問に目を通しましたが、これをしたいと思っている人はほとんどいないか、単に失敗しているようです。

いいですか、皆さん何か考えがありますか?

0 投票する
0 に答える
44 参照

java - Maven-Embedder を使用して、Java から Maven プロジェクトを実行したときにログを取得するにはどうすればよいですか?

いくつかの Maven プロジェクト用の小さな監視ツールを作成したいと考えています。

開発中に実行する必要がある 3 つのサーバー アプリケーションがあります。現在、それらを実行する小さなシェル スクリプトがありますが、ログを表示するときに驚くほど不正確であり、再起動してプロセスを強制終了するのが面倒です。これも Windows では動作しません。そのため、ステータスやログなどをリアルタイムで表示するのを最適化するために、他の開発者向けの小さな監視ツールが必要です。

Maven エンベダーを使用していますが、MavenCli を実行してもログが表示されません。

Maven プロジェクトのログ ストリームにアクセスするにはどうすればよいですか? printlines とエラーにアクセスできます。

私のコードのベースラインは次のとおりです。