我有以下 Ant 邮件任务 -

<target name="sendtestreport" >
    <mail mailhost="smtp.com" mailport="1025" subject="Test build" >
        <from address="test@gmail.com" />
        <replyto address="test@gmail.com" />
        <to address="test@gmail.com" />
        <message>test message</message>
        <attachments>
        </attachments>
    </mail>
</target>

我的项目“lib”文件夹中同时提供了激活和邮件 jar。我希望能够发送邮件而不必将这些 jars 保存在 ant 下载位置。是否可以让 ant 知道我的“lib”文件夹以查看 javaxmail 和激活 jars。像如果我可以在此目标中指定类路径之类的东西。

现在当我执行这个目标时,我总是遇到异常 -
BUILD FAILED
java.lang.ClassNotFound
Exception: javax.mail.internet.MimeMessage

最佳答案

不幸的是你不能。
您必须以某种方式将 Library Dependencies 放入 ant 类路径中。

这可能是 ANTH_HOME/lib 目录或对命令行参数的更改。

Ant 有一个 command-line argument 来指定一个 lib 目录:

-lib <path> specifies a path to search for jars and classes

您也可以使用该信息从 ant 本身调用 ant,这可能有点难看:
<exec executable="ant">
  <arg value="-lib"/>
  <arg value="PATH_TO_MY_LIB"/>
  <arg value="target"/>
</exec>

如果从 Eclipse 执行此任务,则可以将库添加到任务的运行定义中,并与其他开发人员共享此运行定义。

关于java - 在外部位置使用邮件和激活 jar 的 ant 邮件任务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8313100/

10-11 03:36
查看更多