実行時に、私のアプリは動的に機能を追加したいと考えています。Mavenリポジトリからアーティファクトをダウンロードしてクラスパスに追加し、アプリサーバーを再起動せずに使用できるようにしたいと考えています。可能?
Mavenリポジトリへのプログラムによるアクセスを提供するEclipseAetherに出くわしました。ここで欠けているのは動的クラスパスです。
Sonatype の Aether が必要です。Aether のラッパーであるjcabi-aetherを使用してみてください。
File repo = this.session.getLocalRepository().getBasedir();
Collection<Artifact> deps = new Aether(this.getProject(), repo).resolve(
new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"),
JavaScopes.RUNTIME
);
知っておく必要があるのは、リモート Maven リポジトリのリスト、ローカル リポジトリの場所、および開始するアーティファクトの Maven 座標だけです。
商用製品の使用に反対しない場合、1 つのオプションはLiveRebel です