gpt4 book ai didi

java - Ant If/Unless 属性问题

转载 作者:太空宇宙 更新时间:2023-11-04 13:53:41 25 4
gpt4 key购买 nike

警告,这是我第一次尝试实际创建 ANT 构建脚本。我试图使我的 test 目标仅在 compiled 属性设置为 true 时运行,此外,我希望我的 dist 目标运行,除非 junit.failure 属性设置为 true。但由于某种原因,以下代码似乎没有达到我的预期目的;这意味着当我尝试运行 ant 时,它不会执行测试,因为 compiled 未设置为 true(我相信),但如果我查看 bin 文件夹,我可以看到 .class 文件确实已生成。因此,这意味着 dist 也不会运行,因为它取决于编译和测试目标。关于我可能做错了什么有什么想法或想法吗?

<project name="project" default="dist" basedir="." xmlns:if="ant:if" xmlns:unless="ant:unless">
<description>
Build file for the project
</description>
<!-- set global properties for this build -->
<property name="src" location="src"/>
<property name="lib" location="lib"/>
<property name="bin" location="bin"/>
<property name="dist" location="dist"/>
<property name="distDirName" value="dist"/>

<!-- including the external jar files -->
<path id="proj.classpath">
<fileset dir="${lib}" includes="*.jar"/>
<pathelement location="${bin}"/>
</path>

<target name="compile" description="compile the source">
<!-- Create the distribution directory -->
<mkdir dir="${bin}"/>
<!-- Compile the java code from ${src} into ${bin} -->
<javac srcdir="${src}" classpathref="proj.classpath" destdir="${bin}"/>
<!-- Set condition for dependent target -->
<condition property="compiled">
<and>
<available file="**/SampleTest.class"/>
<available file="**/DBConnection.class"/>
</and>
</condition>
</target>

<target name="test" depends="compile" if="compiled">
<junit failureproperty="junit.failure" errorproperty="junit.failure" printsummary="withOutAndErr" fork="yes" haltonfailure="true" haltonerror="true">
<formatter type="xml"/>
<test name="this.one.dir.SampleTest" todir="${bin}"/>
<classpath refid="proj.classpath"/>
</junit>
</target>

<target name="dist" depends="compile,test" unless="junit.failure" description="generate the distribution">
<!-- Create the distribution directory -->
<mkdir dir="${dist}"/>

<!-- Put everything in ${bin} into the distribution.jar file -->
<jar jarfile="${dist}/distribution.jar" basedir="${basedir}" excludes="**/test/,${distDirName}/**"/>
</target>
</project>

最佳答案

您需要评估您的变量,例如使用${junit.failure}

<target name="dist" depends="compile,test" unless="${junit.failure}" description="generate the distribution"> 
</target>

关于java - Ant If/Unless 属性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30045125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com