java通过命令行参数更改默认ant目标
我最近被分配了一项任务,使ant能够为不同的环境构建war包。除了一个功能外,我几乎完成了
ant通过类似-Denv=DEV
的方式接受env
参数,并使用不同的配置文件来生成war包。但是默认的目标是start
,它将构建、部署和启动tomcat。我不希望ant部署war,也不希望在传入-Denv=PROD
参数时启动服务器。我只想让蚂蚁建立根。战争够了
我知道我可以再打一个字来实现这个目标,但你知道我们都很懒D
有人知道如何根据命令行参数更改默认目标吗? 我的要求如下:
ant -Denv=DEV
将构建、部署和启动服务器ant -Denv=PROD
将只生成根目录。战争
# 1 楼答案
好吧,我放弃
在使用Ruby/Rails或其他现代工具之后,我发现ant很难使用
您不需要学习如何在Ant中运行本机命令,只需编写一个
bash
脚本来运行Ant和混合命令行,例如:# 2 楼答案
ant contrib集合中有一个“if”任务。用这个你可以 定义一个默认任务,用于测试参数并调用所需的任务。 如果未设置dev参数,还可以定义默认行为
# 3 楼答案
我建议您在
build.xml
文件中定义名为“DEV”和“PROD”的目标,然后调用Ant作为:或者
如果你想坚持目前使用系统属性选择目标的方法,那么@krock的答案似乎是可行的。(但我认为这种方法没有任何优势。)
# 4 楼答案
您还可以基于env属性加载不同的属性文件:
并在其中配置要调用的目标:
在DEV.properties中:
在PROD.properties中:
然后根据属性调用目标:
通过为每种构建类型指定单独的属性文件,可以轻松配置构建的其他方面