【问题标题】:Defining task in maven archetype to be executed during project creation在项目创建期间定义要在 Maven 原型中执行的任务
【发布时间】:2025-12-12 04:25:01
【问题描述】:

我有一个用于创建项目的自定义 maven 原型。我的问题是,当我们定义要在 Maven 项目的各个生命周期阶段运行的 ant 任务时。当使用我的原型生成项目时,我是否可以运行任务。我想在项目生成期间执行某个文件,它将进一步将文件复制到我的项目的webapp 文件夹中。是否可以在 Maven 原型中为创建阶段定义这样的任务。谢谢

【问题讨论】:

    标签: java maven ant maven-archetype


    【解决方案1】:

    在生成原型时,您可以使用-Dgoals=plugin:goal 指定在原型生成之后直接运行的项目目标,如here 所写

    因此,让项目 pom 包含以下内容:

    <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
            <executions>
                <execution>
                <id>tt</id>
                    <phase>run</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <tasks>
                            <echo>${PATH}=${env.PATH}</echo>
                            <echo>Users Home Directory: ${user.home}</echo>
                            <echo>Projects Base Director: ${basedir}</echo>
                        </tasks>
                    </configuration>
                </execution>
            </executions>
    </plugin>
    

    调用mvn archetype:generate -Dgoals=antrun:run 应该允许您在生成antrun:run 目标后直接运行,并执行您需要的任何脚本。

    【讨论】:

    • 我试过了,但它显示No Ant target defined - skipped。我正在调查这个问题。但我想知道在eclipse中创建项目时如何传递-Dgoals=antrun:run
    • 我认为这种情况下你最好的选择是使用外部工具配置,它并不完全一样,但我相信这篇文章总结了它:avajava.com/tutorials/lessons/…
    最近更新 更多