問題タブ [maven-mojo]
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 - Maven 3.3以降のマルチモジュールビルドでの依存関係の解決が間違っている
すべてのプロジェクトの依存関係を取得し、これらのアーティファクト情報をテンプレート ファイルに入力する maven プラグインを作成しました: jnlp-maven-plugin。説明されている動作を観察するためのテストケースが含まれています。
maven 3.3 以降、シェード プラグインによって依存関係が生成されると、プラグインはマルチ モジュール ビルドであまりにも多くのアーティファクトを取得します。各モジュールを連続してビルドすると、推移的な依存関係が正しく提供されます。Maven 3.2.5 を使用すると、すべて正常に動作します。
成果物は次のコードで取得されます: AbstractJnlpMojo#73。これにより、依存関係が推移的に取得されます。Maven 3.3以降、これを行う新しい方法はありますか? それとも私はそれを間違っていますか?
一方、アセンブリ プラグインは、陰影付きの依存関係を常に正しくフェッチします。しかし、依存関係は独自のアルゴリズムで再帰的に解決されます。
再現するには、github からプロジェクトを複製し、ルート モジュールをインストールする必要があります。ファイルは two/target/jnlp に作成されます。マルチモジュールビルドのmaven 3.3.Xでは、30個のファイルが作成されます。古い Maven バージョンと単一モジュールのインストールでは、20 個のファイルが作成されます。
maven - Maven プラグインのビルド ログをインターセプトする方法
mojo-executor を使用して別の Mojo を実行する Maven Mojo を作成しました。これが実行されると、その Mojo 実行の出力はデフォルトの出力になります。したがって、実行されると、次のように出力されます。
OK、Errorprone を使用していくつかのバグチェッカーを作成したため、これらの警告はすべて予想されます。しかし問題は、この出力を標準出力から削除して、ファイルに入れなければならないことです。でもその部分だけ。
私がこれまでに試したことは、実行時に出力をファイルにリダイレクトすることでした:
前提: - 標準出力からすべてを削除してファイル内に配置するため、使用できませんmvn --logFile
。-l
また、ユーザーが --logFile またはそのようなものを配置しても、ソリューションは信頼できないはずです。
java - Maven プラグイン: 複数のモジュールにまたがるリソースへのアクセス
現在、マルチモジュール Maven プロジェクトで XML ファイルを生成するためのカスタム Maven プラグインを作成しています。
私の Maven 構造は非常に標準的です。1 つの親プロジェクトと、親プロジェクト フォルダー内のプロジェクト コンポーネントによるモジュールです。
カスタム アノテーションによってフラグが付けられた一連のクラスをモジュールごとにリストする必要があります。対応するモジュール出力ディレクトリ (${project.build.outputDirectory}) にコンパイル時に XML ファイルを作成するための一連のカスタム アノテーションとアノテーション プロセッサを既に作成しました。
ここで、各モジュールの XML を 1 つのファイルにマージする必要がありますが、各パスをパラメーターとして設定することを除いて、Maven プラグイン内から各モジュールにアクセスする方法がわかりません (この方法は好きではありません)。
これを行う方法について何か考えはありますか?Maven プラグインはプロジェクト モジュールをトラバースできますか?
前もって感謝します。
java - カスタム Maven プラグイン内から org.reflections.Reflections を使用してクラスを見つけることができません
次のようなカスタム Maven プラグインを作成しました。
そして、私はそれを次のように使用しています:
Mojo の execute メソッドでは、Reflections API を使用して、インターフェイス CdsData を拡張するすべてのインターフェイスを取得しようとしています。
プラグインを実行する pom に依存する 5 つの結果が得られます。それで大丈夫です。ただし、別のプラグイン (cds4j-maven-plugin) を使用していくつかの実装も生成しました。
そして、上記のプラグインがソースを生成した後に実行されるように、カスタム プラグインのフェーズを prepare-package に設定しようとしました。ただし、前に述べた 5 つ以上の結果は得られません。これらの生成されたインターフェイスも表示されることを期待しています。
これは、クラス パスまたはクラス ローダーの問題でしょうか? それともフェーズでしょうか?
また、生成されたクラスのパッケージを Reflections コンストラクターに配置しようとしました。また、8 行目で説明されているように、Reflections クラスの読み込みを構成しようとしました: https://www.hellojava.com/a/80798.html
どんな助けでも大歓迎です!ありがとうございました!
乾杯、キエルド