我是一家软件产品公司的专业服务顾问。我们的产品提供了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
该代码片段在初始化阶段执行,但类路径在编译开始时还原,编译失败。我这样做是对的吗?
发布于 2017-09-20 21:29:22
这听起来不像是该走的路。
而是尝试分析安装文件夹是如何组装的。尝试使用Maven创建此安装文件夹,并提供一个包含所有使用的依赖项(BOM - Bill of Material)的POM。
然后在您的扩展中使用此BOM-POM作为依赖项(scope=provided)。
https://stackoverflow.com/questions/46331761
复制