gpt4 book ai didi

java - 自定义 maven 插件 : install and execute the plugin in one build

转载 作者:行者123 更新时间:2023-12-04 01:14:28 29 4
gpt4 key购买 nike

我编写了一个自定义 maven 插件,它从自定义模式中构建 java 代码。
项目结构是这样的:

Project
+ plugin
+ web-application
react 器首先编译插件,然后是应用程序。
通常的 mvn 命令是:
mvn
...谁触发了 <defaultGoal>plugin:scaffold package</defaultGoal>在新机器上构建失败,因为在 react 器计划构建阶段时插件还不知道。所以我必须调用 mvn install第一的。然后 mvn plugin:scaffold package奇迹般有效。
问题是:每当我修改脚手架插件并调用 mvn plugin:scaffold package尚未使用脚手架插件的修改,因为它尚未安装到存储库中。所以我必须调用 mvn install又是第一。
有没有办法:
  • 安装对插件的修改
  • 使用插件的修改构建 Web 应用程序

  • 一步?

    最佳答案

    首先,您的插件必须是根项目的模块才能使分辨率正常工作:

    <modules>
    <module>plugin</module>
    <module>app</module>
    </modules>
    然后在 build/plugins 中声明插件部分你的应用程序 pom
    <build>
    <plugins>
    <plugin>
    <groupId>org.example.plugin</groupId>
    <artifactId>plugin</artifactId>
    <version>${project.parent.version}</version>
    <executions>
    <execution>
    <id>sayhi</id>
    <phase>generate-sources</phase>
    <goals>
    <goal>sayhi</goal>
    </goals>
    </execution>
    </executions>
    </plugin>
    </plugins>
    </build>
    第一次运行插件或插件更改时,您至少需要运行 package阶段,以便创建插件 jar。它必须从根项目运行:
    mvn package
    该插件将在 generate-sources 期间执行阶段:
    [INFO] --- plugin:1.0-SNAPSHOT:sayhi (sayhi) @ app ---
    [INFO] Hello, world.
    [INFO]
    当您更改插件时,只需运行(再次从根项目):
    mvn package
    你会看到变化:
    [INFO] --- plugin:1.0-SNAPSHOT:sayhi (sayhi) @ app ---
    [INFO] Hello, worldxxxx.
    [INFO]
    请参阅 Github 上的完整示例

    关于java - 自定义 maven 插件 : install and execute the plugin in one build,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63791337/

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