gpt4 book ai didi

java - 在运行时更改 Maven 插件配置

转载 作者:行者123 更新时间:2023-12-01 23:18:14 26 4
gpt4 key购买 nike

我有两个 Maven 插件,AB,其中 A 定义在之前 B

在A的执行过程中我想在执行B之前更改B的某个配置,这两个插件是在同一阶段(编译)配置的。

在插件A的代码中,我得到了我想要更改配置的插件:

List<Plugin> plugins = project.getBuildPlugins().stream()
.filter(plugin -> plugin.getKey().equals("cz.habarta.typescript-generator:typescript-generator-maven-plugin"))
.collect(Collectors.toList());
Plugin plugin = plugins.get(0);

其中项目是一个 MavenProject 实例。

for (PluginExecution t: plugin.getExecutions ()) {
if (t.getPhase (). equals ("compile")) {
  Xpp3Dom config = (Xpp3Dom) t.getConfiguration ();
    t.setConfiguration (changeConfig (config));
  } else {
    System.out.println ("Not compile phase");
  }
}

方法changeConfig ()更改当前配置并返回一个新配置。

配置已更改,但插件 B 的执行不会采用此更改。

有服从吗?

更新:

流程如下,插件A扫描项目依赖项,对于每个满足一系列条件的依赖项,必须在插件B中添加以下 block > 配置:

<moduleDependency>
<importFrom> value1 </importFrom>
<importAs> value2 </importAs>
<infoJson> value3 </infoJson>
<npmPackageName> value4 </npmVersionRange>
</moduleDependency>

这 n 个 block 被添加到插件 B 的以下配置元素中:

<moduleDependencies>
...
</moduleDependencies>

Information about the configuration element of plugin B

问题是插件 B 没有采用新配置。

有服从吗?

最佳答案

通常,在第一个插件中设置某些属性并在第二个插件的配置中使用这些属性会更干净、更容易。

关于java - 在运行时更改 Maven 插件配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58340783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com