Apache Ant 1.10.6已于本周发布。 此版本包含许多错误修复以及一些非常令人兴奋的新功能。 完整的发行说明可在此处获得 ,下载本身也可以在此处获得 。 在本文中,我将介绍该版本中引入的一些新功能。
使用junitlauncher任务在派生的JVM中运行JUnit5测试
不久前,Ant 1.10.x引入了对使用新的“ junitlauncher”任务启动的JUnit5测试的支持。 考虑到JUnit 4.x和JUnit 5之间更改的性质,在新的“ junitlauncher”任务中引入的支持量很小。 根据用户对此任务的反馈,此任务现已增强,以支持“分叉”模式。 这是此任务中最需要增强的功能之一。 现在,此任务中对“ fork”模式的支持使用户可以配置此任务,以在派生的JVM中启动测试,而不是在与当前运行该版本的JVM相同的JVM中运行这些测试。Fork模式可提供更多控制权这些测试的执行方式(诸如仅为这些测试甚至系统属性设置其他JVM参数之类的东西)。 该任务的手册中提供了如何在此任务中使用派生模式的完整详细信息。 这是此类用法的一个非常基本的最小示例:
<target name="test-basic-fork"><junitlauncher><!-- Imagine test.classpath points to a previously configured path --><classpath refid="test.classpath"/><test name="org.example.myapp.SampleTest" outputdir="${output.dir}"><fork dir="${basedir}"><sysproperty key="myapp-system-property" value="hello world!"/></fork></test></junitlauncher>
</target>
上面的示例设置了“ junitlauncher”任务,以在派生的JVM中启动名为“ org.example.myapp.SampleTest”的测试类。 上面示例中的“ fork”元素被配置为设置一个名为“ myapp-system-property”的Java系统属性,其值为“ hello world!”。 执行测试时,此Java系统属性将可用于此测试或在该派生JVM中执行的任何其他类。 “前叉”元件的更高级功能在前面链接的手册中进行了说明。
Java 9+工具的新jmod和链接任务
Java 9附带了一个新的模块化生态系统 。 这也引入了新的工具来创建和管理Java模块。 在此版本的Ant 1.10.6中,我们引入了新任务–“ jmod”和“ link”,可用于创建Java模块,然后将它们组合起来以创建自定义JVM运行时映像。 有关这些任务的更多详细信息,请参见其手册。
在这里和这里 。 非常感谢Craig Pell贡献了这些宝贵的任务。 Ant中正在研究Java 9+的更多增强功能,我们计划在将来的版本中提供它们。
请下载此新版本的Ant,并在我们的用户邮件列表中向我们提供反馈和建议。
翻译自: https://www.javacodegeeks.com/2019/05/apache-ant-released-fork-mode-junitlauncher.html