Ant调用Maven执行mvn clean install显示成功但无效果,请求排查
问题
我现在把其他模块都改成用Ant构建了,新增了一个基于Maven的模块。我在pom.xml的同级目录下创建了build_dl.xml文件,内容如下:
<project name="Income"> <target name="mvn"> <exec dir="." executable="sh"> <arg line=" -c 'mvn clean install'" /> </exec> </target> </project>
执行命令ant -buildfile build_dl.xml后,日志显示BUILD SUCCESSFUL Total time: 0 seconds,但实际上pom.xml根本没执行,也没生成target目录。请问我哪里出错了?
分析与解决方法
这问题我之前踩过坑!核心原因是Ant默认不会自动执行任何target,除非你明确指定或者设置了默认目标。
没指定要运行的target
你当前的命令只是让Ant加载了构建文件,但没告诉它要执行哪个target,所以Ant只会检查文件语法没问题,就直接返回成功了。你需要在命令里加上要运行的mvn目标:ant -buildfile build_dl.xml mvn没设置默认target
要是不想每次都手动指定target,可以给project标签加上default属性,把mvn设为默认执行的目标,这样原命令就能自动跑Maven构建了:<project name="Income" default="mvn"> <target name="mvn"> <exec dir="." executable="sh"> <arg line="-c 'mvn clean install'" /> </exec> </target> </project>
另外提个小细节:你arg line里开头的空格可以去掉,虽然一般不影响,但避免出现不必要的解析问题更稳妥。
内容的提问来源于stack exchange,提问作者m0na
相关产品推荐
相关产品推荐

