maven - 在运行时动态加载 Maven Artifact

标签 maven aether

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

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

最佳答案

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 存储库列表、一个本地存储库位置和开始使用的 Artifact 的 Maven 坐标。

关于maven - 在运行时动态加载 Maven Artifact ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13055968/

相关文章:

Java java.lang.ClassNotFoundException : jade. core.migration.InterPlatformMobilityService

maven - 在另一个插件中使用 maven-assembly-plugin 的最终输出文件名

maven - 高级Docker和Dockerfile的卷/写出理解

java - 指定 aether 使用的 Maven 配置文件

java - 如何在 Java 中使用 Aether 搜索 RemoteRepositories?

maven - 依赖 Aether 的 maven mojo 能否与 Maven 3.0.x 和 3.1.x 兼容?

java - 如何使用 aether API 检索 Maven 工件的最新(也是 SNAPSHOT)版本?

java - maven 中 javac 编译顺序错误的解决方法

java - 使用 Maven 和 NetBeans 在 Tomcat 上进行增量热部署