4

我一直在 Macintosh (10.5.5) 上从命令行运行内置Ant ,但在Mail任务中遇到了一些问题。运行 Mail 任务会产生以下消息:

[mail] Failed to initialise MIME mail: org.apache.tools.ant.taskdefs.email.MimeMailer

这很可能是由于 /usr/share/ant/lib 目录中缺少 ant-javamail.jar 文件。我在这个目录中看到了一个“ant-javamail-1.7.0.pom”文件,但没有看到相应的 jar 文件。任何人都知道为什么这个 jar 文件可能会丢失以及解决问题的最佳方法是什么?

4

3 回答 3

2

这是我最终解决问题的方法:

  1. 从http://ant.apache.org/下载了最新版本的 Ant
  2. “内置” Ant 安装在 /usr/share/ant 中;我不想覆盖那个版本,所以我将新的完整版本提取/usr/local/share/apache-ant-1.7.1/
  3. 正如npellow 所指出的,Mac 不包含 mail.jar 或 activation.jar——这些文件可以分别从JavaMail APIJavaBeans Activation Framework下载和提取,然后复制到的ant lib 文件夹(与所有ant-*.jar 文件)
  4. ant 命令 (/usr/bin/ant) 是指向 /usr/share/ant/bin/ant 的符号链接;我更新了此链接以指向新版本 ( ln -s /usr/local/share/apache-ant-1.7.1/bin/ant /usr/bin/ant)

如果由于某种原因您需要再次将旧版本的 Ant 设为默认值,只需使用
ln -s /usr/share/ant/bin/ant /usr/bin/ant

步骤 2-4 是在命令提示符下以 root 身份完成的。就是这样——Mac 现在拥有最新、完整的 Ant 版本,并且 Mail 任务运行良好。

于 2008-11-05T14:28:00.300 回答
1

从以下网址下载 Java Mail 库:http: //java.sun.com/products/javamail/。您还需要http://java.sun.com/products/javabeans/glasgow/jaf.html

此处列出了 Ant 的可选任务所需的所有外部依赖项列表http://ant.apache.org/manual/index.html

另一种很容易获得 Ant 依赖项的方法是运行:

ant -f fetch all

来自 $ANT_HOME。您还可以运行 -projecthelp 以获得完整的目标列表:

all         load all the libraries
 antlr       load antlr libraries
 bcel        load bcel libraries
 beanshell   load beanshell support
 bsf         load bsf libraries
 debugging   internal ant debugging
 get-m2      Download the Maven2 Ant tasks
 jdepend     load jdepend libraries
 jruby       load jruby
 junit       load junit libraries
 jython      load jython
 logging     load logging libraries
 networking  load networking libraries (commons-net; jsch)
 regexp      load regexp libraries
 rhino       load rhino
 script      load script languages
 xerces      load an updated version of Xerces
 xml         load full XML libraries (xalan, resolver)
于 2008-10-27T10:30:28.150 回答
0

我也让这个工作方式略有不同:

  1. 创建目录~/.ant/lib
  2. 下载JavaMail API并将 jars 复制到该目录中。
  3. 下载JavaBeans Activation Framework并将 jar 复制到该目录中。
  4. 下载Apache Ant 1.7.0(不是最新的,与安装的版本匹配)并将apache-ant-1.7.0/lib/ant-javamail.jar文件复制到该目录中。

这仅解决了单个用户帐户的问题,但这对我的目的来说很好,并且省去了在我的机器上安装两个单独的 ant 的麻烦。

于 2009-05-13T18:54:47.423 回答