Java 在外部位置使用邮件和激活jar的ant邮件任务
我有以下ant mail任务-Java 在外部位置使用邮件和激活jar的ant邮件任务,java,ant,Java,Ant,我有以下ant mail任务- <target name="sendtestreport" > <mail mailhost="smtp.com" mailport="1025" subject="Test build" > <from address="test@gmail.com" /> <replyto address="test@gmail.com" /> &l
<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>
不幸的是,你不能。
您必须以某种方式放入ant类路径
这可能是ANTH_HOME/lib dir或对命令行参数的更改
Ant具有指定lib dir的权限:
-lib <path> specifies a path to search for jars and classes
-lib指定搜索jar和类的路径
你也可以用这些信息从ant本身调用ant,这可能有点难看:
<exec executable="ant">
<arg value="-lib"/>
<arg value="PATH_TO_MY_LIB"/>
<arg value="target"/>
</exec>
如果从eclipse执行此任务,则可以将LIB添加到任务的运行定义中,并与其他开发人员共享此运行定义。有关ant中库依赖项的解决方案,请参阅
简而言之,将所有ant插件库,例如mail.jar、activation.jar、commons放在一个特殊的文件夹中,并通过使其可用于所有ant脚本。被迫在ant中使用exec任务来解决库依赖关系似乎很奇怪 在Eclipse中,常见的做法是在存储库中创建一个模块(cvs、subversion、git)。然后,每个团队成员的工作区中都有该模块,并且只需使用
Window>Preferences>Ant>Runtime>Global Entries
使这些依赖项可供Ant使用。有一种很好的方法已经存在。它通过以下方法解决此问题:
我正在使用命令行执行ant mail任务,它会给我任何方法吗?
<exec executable="ant">
<arg value="-lib"/>
<arg value="PATH_TO_MY_LIB"/>
<arg value="target"/>
</exec>
<taskdef resource="net/jtools/classloadertask/antlib.xml"
classpath="ant-classloadertask.jar"/>
<!-- now you can load activation.jar and mail.jar into the project's classpath -->
<classloader loader="project">
<classpath>
<pathelement path="lib/activation.jar"/>
<pathelement path="lib/mail.jar"/>
</classpath>
</classloader>