java - 用于部署和测试的 Maven 类路径生成

标签 java maven-2 classloader

我有一个用于创建自定义类加载器的模块。因此,应该使用模块的路径以及所有依赖项来创建类加载器。

我正在寻找一种方法,使在开发和生产环境中使用此机制都能高效工作。

我认为构建可以生成两个列出所有依赖路径的文件。 “开发”文件和“生产”文件(然后在代码中我会根据某些系统属性选择正确的文件):

  • dev:依赖项应该是本地 maven 存储库中第三方 jar 的路径或其他模块的“目标\类”(这将允许使用 IDE 进行编译,而不需要为每个更改进行完整构建)
  • 生产:应将所有 jar 复制到“lib”文件夹,并且依赖项应列出它们(没有完整路径)。或者,创建一个 uber jar,然后 (?)

所以我正在寻找指向插件和 pom 片段的指针来帮助我解决这个问题。

最佳答案

一些提示:

  • 对于开发部分,Maven Dependency Plugin及其 dependency:build-classpath可以提供帮助(并支持将输出写入文件)。另一种选择是使用 Maven AntRun 插件,它可以访问 Maven runtime classpath ,将属性写入文件应该很容易。

  • 对于产品部分,我假设您将使用 Maven Assembly 插件或 Shade 插件或其他等效插件,我想知道您是否无法在 MANIFEST.MF 中生成类路径条目并依赖它。

关于java - 用于部署和测试的 Maven 类路径生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3299795/

相关文章:

java - 在netbeans模块中创建一个新的项目类型

maven-2 - 继承 Maven 配置文件

java - 与默认类加载器和 PlayFramework 自定义类加载器冲突

java - 将数据写入 OutputStream 而不使用 CLDC 关闭

Java 泛型 - 从 "capture#1 of ?"到 "A"的未经检查的强制转换

java - 使用 Maven

maven - 查找多模块 Maven Reactor 项目的根目录

java class.getAnnotation(Class<?> class) 返回 null

java - 在tomcat集群环境中获取ClassNotFoundException反序列化 session 属性

java - 默认情况下,使用 java 8 运行 Java jar 会强制使用 TLS1.2 吗?