首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调用maven-antrun-plugin目标而不将执行附加到maven阶段?

如何调用maven-antrun-plugin目标而不将执行附加到maven阶段?
EN

Stack Overflow用户
提问于 2012-05-11 20:52:05
回答 4查看 8K关注 0票数 4

我使用maven-antrun-plugin作为我项目的初始化配置文件。但我只需要初始化一次配置文件,当我第一次开始初始化我的开发环境时,而不是每次启动jetty:run时。

例如,如果我将阶段附加到流程资源,则每次启动jetty时,我的配置文件都会被重置。

所以我像这样配置了antrun:

代码语言:javascript
复制
<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
        <goals>
            <goal>run</goal>
        </goals>
        <configuration>
            <target name="init_config_files">
                <!-- init files -->
            </target>
        </configuration>
        </execution>
    </executions>
</plugin>

如果我启动mvn antrun:run,它只会返回这个错误:"INFO No ant target defined - SKIPPED“。如果我指定target:"mvn antrun:run -Dtarget=init_config_files“,也是一样的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-13 15:14:43

试试这个:

代码语言:javascript
复制
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
                <execution>
                    <id>default-cli</id>
                    <configuration>
                        <target>
                            <property name="compile_classpath" refid="maven.compile.classpath" />
                            <echo message="compile classpath: ${compile_classpath}" />
                        </target>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

然后运行以下命令:

代码语言:javascript
复制
 mvn antrun:run
票数 7
EN

Stack Overflow用户

发布于 2016-02-19 04:01:52

到目前为止我找到的最佳解决方案:

代码语言:javascript
复制
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
                <execution>
                    <id>go-live</id>
                    <configuration>
                        <target>
                            <!-- go live! -->
                            <exec executable="${basedir}/deploy2server.sh" failonerror="true" dir="${basedir}">
                                <arg value="deploy" />
                                <arg value="${deploy.to.server}" />
                                <arg value="${jetty.port.live}" />
                            </exec>
                        </target>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

然后运行以下命令:

代码语言:javascript
复制
 mvn antrun:run@go-live

这个解决方案避免了目标被意外运行,即。它不能仅仅通过输入"mvn antrun: run“来运行,它也不能在常规的maven运行期间运行。在我的jenkins实例中,在所有模块(包括针对最终分发包所做的集成)都已成功执行之后,我将使用它来进行qa自动部署。

票数 6
EN

Stack Overflow用户

发布于 2013-11-13 22:56:09

我刚刚遇到了同样的问题,并最终解决了这个问题:如果你只想运行一次ant任务,你可以这样设置插件:

代码语言:javascript
复制
<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <configuration>
        <target name="init_config_files">
            <!-- init files -->
        </target>
    </configuration>
</plugin>

并使用mvn antrun:run来执行它。这样,蚂蚁的东西就不会绑定到任何阶段。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10551726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档