我正在努力理解Maven,并且正在学习使用它构建Java应用程序的知识。 所以当我做一个:
maven package
它确实按照预期的方式构建了我的jar,但是我在输出控制台中看到Maven确实构建了测试(它总是说测试运行并且没有失败)。 我在网上对此进行了研究,并了解到Maven使用了名为Maven Surefire的插件。但是我不明白该插件对我的代码有什么作用,测试“意味着”什么?这些测试对我的代码有什么作用,以及它如何在控制台后面工作?
答案 0 :(得分:0)
Maven surefire插件运行您编写的测试。这些通常位于src/test/java
文件夹中。如果您没有,插件将不执行任何操作。
答案 1 :(得分:0)
这只是一个问题吗? :D
所以。正在发生不同的事情。
您使用Java创建应用程序。要测试大多数人创建的单个组件/包/类,请使用JUnit或TestNg。通常,您有专用的测试类来验证您的生产代码是否按预期运行,而无需单击每个更改的所有内容。
现在使用maven运行构建时,pom.xml文件将定义一个包装-在您的情况下为“ jar”,因为您创建了jar文件。包装定义了what set of default plugins中运行的defined maven phases。您可能在这里认识了package
。 Maven执行包和注册/配置的插件的所有阶段。
要执行这些测试,maven提供了surefire plugin,它支持运行JUnit或TestNg测试。如果遵循目录约定,则测试将驻留在src/test/java
中,并且surefire includes naming convention Maven将在每个构建中执行这些测试(因为这是最佳实践)。如果您还想编写集成测试,那么这里有failsafe plugin。该插件默认未启用,并且在不同的Maven阶段运行。
因此,测试仅运行您的生产代码-实际上,它们只是执行您在测试中实现的功能。他们不会以任何方式改变它。
maven简介文档中有逐步的说明:Maven in 5 Minutes和Getting Started Guide。
从头开始,这可能很多。所以不要着急。构建设置和测试设置是非常重要的事情。