我是一家软件产品公司的专业服务顾问。我们的产品提供Java API,因此可以构建字段自定义。这些扩展依赖于多达50个单独的JAR文件 - 一些是我们产品专有的,另一些是开源的。
我不想在POM中对依赖项进行硬编码有几个原因 - 主要是因为每个新版本都依赖于轻微不同版本的开源工件。发布新产品时,我只想指向新的安装文件夹并重建扩展名。
所以,我正在尝试创建一个Maven插件,它接受对安装文件夹的引用,通过文件夹进行递归,并自动将所有* .jar文件添加到编译时类路径中。
我试过了:
Map<?, ?> context = getPluginContext();
MavenProject maven = (MavenProject) context.get("project");
List<String> classpath = maven.getCompileClasspathElements();
// start adding additional elements to the classpath
该片段在初始化阶段执行,但类路径会在编译开始时恢复,编译失败。我是否正确地采取了这种方式?
答案 0 :(得分:0)
这听起来不怎么样。
而是尝试分析安装文件夹的组装方式。尝试使用Maven创建此安装文件夹,并为POM提供所有使用的依赖项(BOM - 物料清单)。
然后在您的扩展程序中使用此BOM-POM作为依赖项(scope = provided)。