2017-09-20 7 views
0

私はソフトウェア製品会社の専門サービスコンサルタントです。当社の製品はJava APIを提供し、フィールドのカスタマイズを構築することができます。これらの拡張機能は、最大50個の個別のJARファイルに依存しています.JARファイルの一部は当社独自のもので、その他はオープンソースです。コンパイルクラスパスをMavenプラグインに動的にビルドする方法は?

いくつかの理由から、POMの依存関係をハードコードしたくないのです。主に、新しいリリースがそれぞれオープンソース成果物のわずかに異なるバージョンに依存するからです。新製品がリリースされたら、新しいインストールフォルダを指して拡張機能を再構築するだけです。

私はMavenプラグインを作成しようとしています。これは、インストールフォルダへの参照を取得し、フォルダを再帰的に処理し、すべての* .jarファイルを自動的にコンパイル時クラスパスに追加します。

私はこれを試してみました:

Map<?, ?> context = getPluginContext(); 
MavenProject maven = (MavenProject) context.get("project"); 
List<String> classpath = maven.getCompileClasspathElements(); 

// start adding additional elements to the classpath 

初期化フェーズの間に実行をスニペットが、クラスパスは、開始をコンパイルする時点で戻り、コンパイルが失敗したこと。私はこれについて正しい方向に進むつもりですか?

答えて

0

これは、行く方法のようには聞こえません。

インストールフォルダの組み立て方法を分析してみてください。 Mavenを使用してこのインストールフォルダを作成し、POMにすべての依存関係(BOM - BOM)を提供してください。

次に、このBOM-POMを依存関係(scope = provided)としてエクステンションに使用します。

関連する問題