在运行时,我的应用程序想要动态添加功能。我们希望能够从Maven仓库下载工件,将它们添加到类路径中,并在不重新启动应用服务器的情况下使用它们。可能的?
我遇到了Eclipse Aether,它提供了对Maven repos的编程访问。现在缺少的部分是动态类路径。
答案 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