相关疑难解决方法(0)

如何使用ANT在删除目录之前检查目录是否存在?

使用ANT,如何在尝试删除目录之前确保该目录存在?

作为我目前清洁任务的一部分,我

<target name="clean" description="clean">
    <delete dir="${build}" />
    <delete dir="${bin}" />
    <delete dir="${dist}/myrunner.${version}.jar" />
    <delete dir="${doc}" />
    <delete dir="${report}" />
</target>
Run Code Online (Sandbox Code Playgroud)

这很好用,但是(很明显)当有东西要删除时会发生删除.

使用ANT,如何检查目录是否存在?

ant build

33
推荐指数
3
解决办法
5万
查看次数

如何在Ant的Available命令中使用通配符

我正在使用Ant构建脚本来整理基于Eclipse的应用程序以进行分发.

构建的一个步骤是检查构建文件夹中是否存在正确的库.我目前使用Ant命令.不幸的是,每次切换到新的Eclipse构建时我都必须修改脚本(因为版本号会更新).

我不需要检查版本号,我只需要检查文件是否存在.

那么,我该如何检查:

org.eclipse.rcp_3.5.0.*
Run Code Online (Sandbox Code Playgroud)

代替:

org.eclipse.rcp_3.5.0.v20090519-9SA0FwxFv6x089WEf-TWh11
Run Code Online (Sandbox Code Playgroud)

用Ant?

欢呼,伊恩

java ant

17
推荐指数
2
解决办法
1万
查看次数

Ant检查是否存在一组文件

在ant中,我如何检查是否存在一组文件(以逗号分隔的路径列表)?

例如,我需要检查列出的所有路径是否myprop存在,如果是,我想设置属性pathExist:

<property name="myprop" value="path1,path2,path3"/>
Run Code Online (Sandbox Code Playgroud)

因此,在示例中,所有path1 path2 path3必须存在以设置pathExisttrue,否则false.

我发现对于单个资源我可以使用该resourceexist任务,但我无法弄清楚如何使用逗号分隔的路径列表.

如何检查一组路径的存在?谢谢!

ant

14
推荐指数
1
解决办法
1万
查看次数

检查ant中的存在文件

可能重复:
Ant任务检查文件是否存在?

如何在目录中存在文件,如果不在另一个位置使用另一个文件,如何检查文件是否存在.我尝试了以下但不能帮助我想要的东西.有人可以帮忙吗?

 <condition property="somefile.available">
     <or>
         <available file="/home/doc/somefile"/>
         <and>
             <available file="/usr/local/somefile" />
         </and>
     </or>
 </condition>
Run Code Online (Sandbox Code Playgroud)

ant

14
推荐指数
2
解决办法
4万
查看次数

如何以编程方式为邮件任务添加Ant库依赖项

我的任务是为Ant构建脚本创建自动通知.这样,当有人推出部署时,我们的团队可以自动收到有关它的电子邮件.

显而易见的选择是使用Ant的邮件任务,该任务是使用Ant预定义的:

<target name="notify" description="notify team">
    <mail subject="latest deployment">
        <from address="me@gmail.com" />
        <to address="jimmy@yahoo.com" />
        <message>A new build has been pushed out to prod</message>
    </mail>
</target>
Run Code Online (Sandbox Code Playgroud)

但是,这会导致以下运行时异常:

java.lang.ClassNotFoundException: javax.mail.internet.MimeMessage
Run Code Online (Sandbox Code Playgroud)

这是因为Ant的邮件任务依赖于JavaMailJavaBeans Activation Framework,这些库显然不包含在其发行版中.为什么Ant会定义依赖于库但不包含该库的任务我不清楚.

此帖已经讨论过这个问题:在外部位置使用邮件和激活jar的ant邮件任务.基于答案,似乎有两种解决方案.

第一种是手动将这些库依赖项放在ant类路径上.这可以使用-lib命令行参数完成,或者在eclipse中可以使用Window > Preferences > Ant > Runtime > Global Entries,然后添加mail.jaractivation.jar(我很确定这相同的事情-lib,如果我错了,请纠正我).但是这个解决方案对我们的团队来说是不受欢迎的,因为这意味着我们每个人都必须手动执行这些步骤.我正在寻找一种方法来简单地提交我的通知代码,它应该在svn更新后的另一个eclipse安装上工作.

链接文章中的另一个解决方案提到了一种通过从自身调用Ant来以编程方式执行上述操作的方法:

<exec executable="ant">
    <arg value="-lib"/>
    <arg value="PATH_TO_MY_LIB"/>
    <arg value="target"/>
</exec>
Run Code Online (Sandbox Code Playgroud)

这个问题是Ant命令行工具显然只包含在完整安装中,而不是eclipse发行版.因此,如果没有任何想要使用邮件任务的人进行手动操作,就无法使其工作.

有没有什么方法可以自动化这个,而不会给项目设置添加另一个恼人的步骤?我真的不明白为什么这么难实现 - 看起来如果邮件任务没有 …

java eclipse ant jakarta-mail

8
推荐指数
2
解决办法
1万
查看次数

Ant:如何测试目标是否存在(如果不存在则调用它)?

我有一组构建文件,其中一些调用其他文件 - 首先导入它们.行尾构建可能具有或不具有特定目标(例如"copyother").如果该目标是在行尾构建脚本中定义的,我想从我的主构建文件中调用它.我该怎么做?

部分调用脚本:

<!-- Import project-specific libraries and classpath -->
<property name="build.dir" value="${projectDir}/build"/>
<import file="${build.dir}/build_libs.xml"/>

...

<!-- "copyother" is a foreign target, imported in build_libs.xml per project -->
<target name="pre-package" depends="    clean,
                                        init,
                                        compile-src,
                                        copy-src-resources,
                                        copy-app-resources,
                                        copyother,
                                        compile-tests,
                                        run-junit-tests"/>
Run Code Online (Sandbox Code Playgroud)

我不希望每个项目都定义"copyother"目标.我怎样才能进行有条件的蚂蚁通话?

ant conditional target antcall

5
推荐指数
1
解决办法
4948
查看次数

标签 统计

ant ×6

java ×2

antcall ×1

build ×1

conditional ×1

eclipse ×1

jakarta-mail ×1

target ×1