【问题标题】:Wrong version of maven-archetype-plugin running "mvn archetype:generate"运行“mvn archetype:generate”的 maven-archetype-plugin 版本错误
【发布时间】:2021-08-11 17:18:57
【问题描述】:

我用maven创建了一个archetype,里面包含archetype-post-generate.groovy,但是没有执行。

这是 pom 的一个片段:

<properties>
    <maven.archetype.version>3.2.0</maven.archetype.version>
</properties>

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-archetype-plugin</artifactId>
                <version>${maven.archetype.version}</version>
            </plugin>
        </plugins>
    </pluginManagement>

    <extensions>
        <extension>
            <groupId>org.apache.maven.archetype</groupId>
            <artifactId>archetype-packaging</artifactId>
            <version>${maven.archetype.version}</version>
        </extension>
    </extensions>
</build>

但是插件的版本与pom中定义的不匹配:

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:2.4:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:2.4:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:2.4:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode

这可能是它不运行 groovy 脚本的原因吗?为什么版本不匹配?

编辑: 完成 POM 并建议更改:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <artifactId>bp-archetype-bcore</artifactId>
    <groupId>global.base</groupId>
    <version>1.0.0</version>
    <packaging>maven-archetype</packaging>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-archetype-plugin</artifactId>
                <version>${maven.archetype.version}</version>
            </plugin>
        </plugins>

        <extensions>
            <extension>
                <groupId>org.apache.maven.archetype</groupId>
                <artifactId>archetype-packaging</artifactId>
                <version>${maven.archetype.version}</version>
            </extension>
        </extensions>
    </build>

</project>

【问题讨论】:

    标签: maven maven-archetype


    【解决方案1】:

    仅在 &lt;pluginManagement&gt; 中声明插件不会对构建添加任何内容。这只是一种模板,如果在此或子 POM 的 &lt;build&gt;&lt;plugins&gt; 部分中声明了插件,则应使用该配置。

    POM Reference, Plugin Management:

    • pluginManagement:[...] 但是,这只配置在子级或当前 POM 中的 plugins 元素中实际引用的插件。 [...]

    【讨论】:

    • 感谢您的回复。这就是我在其他示例中看到的方式。我以前尝试过 但它是一样的
    • 请在您的问题中添加“之前尝试过”的版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 2023-03-13
    • 1970-01-01
    • 2018-01-08
    相关资源
    最近更新 更多