在运行时动态加载Maven工件

时间:2012-10-24 19:03:32

标签: maven aether

在运行时,我的应用程序想要动态添加功能。我们希望能够从Maven仓库下载工件,将它们添加到类路径中,并在不重新启动应用服务器的情况下使用它们。可能的?

我遇到了Eclipse Aether,它提供了对Maven repos的编程访问。现在缺少的部分是动态类路径。

2 个答案:

答案 0 :(得分:2)

Sonatype的Aether就是你所需要的。尝试使用jcabi-aether,这是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 :(得分:0)

如果您不反对使用商业产品,则可以选择LiveRebel