是否有一个“问题”;“严格模式”;对于ApacheAnt?

是否有一个“问题”;“严格模式”;对于ApacheAnt?,ant,properties,strict,Ant,Properties,Strict,如果我有这样一个Ant任务: <target name="default"> <mkdir dir="${installer.config.installation.db.path}"/> </target> 如果要求ANT解析属性但失败,有没有办法强制执行失败?没有办法对所有属性执行此操作,但您可以检查单个属性: <fail unless="installer.config.installation.db.path" /> 当未定义

如果我有这样一个Ant任务:

<target name="default">
  <mkdir dir="${installer.config.installation.db.path}"/>
</target>

如果要求ANT解析属性但失败,有没有办法强制执行失败?

没有办法对所有属性执行此操作,但您可以检查单个属性:

 <fail unless="installer.config.installation.db.path" />


当未定义属性时,上述操作将中止脚本。但是,当属性为空时,它将成功

无法对所有属性执行此操作,但您可以检查单个属性:

 <fail unless="installer.config.installation.db.path" />


当未定义属性时,上述操作将中止脚本。但是,当属性为空时,它将成功

以下内容仅适用于ant项目级属性。(需要groovy库)


导入org.apache.tools.ant.PropertyHelper;
def antProject=项目;
如果(“#MyPropertyHelper”!=PropertyHelper.getPropertyHelper(antProject.toString()){
def myPropertyHelper=新的PropertyHelper(){
@委托PropertyHelper委托=PropertyHelper.getPropertyHelper(antProject);
公共对象getProperty(字符串名称){
Object v=delegate.getProperty(名称);
如果(v==null)抛出新的org.apache.tools.ant.BuildException(“属性`$name`未定义”);
返回v;
}
公共字符串toString(){return“#MyPropertyHelper”}
}
antProject.addReference(“ant.PropertyHelper”,myPropertyHelper);
}

以下内容仅适用于ant项目级属性。(需要groovy库)


导入org.apache.tools.ant.PropertyHelper;
def antProject=项目;
如果(“#MyPropertyHelper”!=PropertyHelper.getPropertyHelper(antProject.toString()){
def myPropertyHelper=新的PropertyHelper(){
@委托PropertyHelper委托=PropertyHelper.getPropertyHelper(antProject);
公共对象getProperty(字符串名称){
Object v=delegate.getProperty(名称);
如果(v==null)抛出新的org.apache.tools.ant.BuildException(“属性`$name`未定义”);
返回v;
}
公共字符串toString(){return“#MyPropertyHelper”}
}
antProject.addReference(“ant.PropertyHelper”,myPropertyHelper);
}
<?xml version="1.0" encoding="UTF-8"?>
<project name="strict me" default="default" basedir=".">
    <target name="init-strict">
        <script language="groovy">
            import org.apache.tools.ant.PropertyHelper;
            def antProject = project;
            if( "#MyPropertyHelper"!=PropertyHelper.getPropertyHelper(antProject).toString() ) {
                def myPropertyHelper = new PropertyHelper(){
                    @Delegate PropertyHelper delegate = PropertyHelper.getPropertyHelper(antProject);
                    public Object getProperty(String name){
                        Object v = delegate.getProperty(name);
                        if(v==null)throw new org.apache.tools.ant.BuildException("The property `$name` not defined");
                        return v;
                    }
                    public String toString() {return "#MyPropertyHelper"}
                }
                antProject.addReference("ant.PropertyHelper", myPropertyHelper);
            }
        </script>
    </target>
    <target name="default" depends="init-strict">
        <mkdir dir="${installer.config.installation.db.path}"/>
    </target>
</project>