使用Maven项目编译和测试代码的过程是什么?

时间:2013-06-05 17:46:51

标签: java maven process install lifecycle

我在我的日食中导入了maven项目。现在我需要开始对其进行更改并使用集成测试(在App服务器之外)进行测试。目前,使用openEJB容器在服务器上运行集成测试。

我的基本问题是,使用Maven编译,构建和测试的常规过程是什么?

  1. mvn install
  2. Maven - >更新项目。
  3. 从命令行运行我的测试
  4. 它是如何完成的?我对了解mvn install命令特别感兴趣。 在测试之前,我应该完成所有三个步骤吗?

    示例:我只想打印一些东西,看看输出是什么。为此,我想我需要做所有这些步骤?

    openEJB容器需要类,因此可以加载它们。

4 个答案:

答案 0 :(得分:2)

http://maven.apache.org/guides/MavenQuickReferenceCard.pdf

上有一个精彩的Maven快速参考表

答案 1 :(得分:2)

首先,您应该知道单元测试和集成测试是分开的,并且是从单独的插件和maven生命周期的不同部分运行的。单元测试使用surefire运行,集成测试使用failsafe运行。

您希望运行集成测试,并且故障安全文档说:

  

注意:在运行集成测试时,您应该使用(更短的类型)

来调用maven      

mvn verify

     

而不是试图直接调用integration-test阶段......

这是直接在maven 中运行集成测试的最佳方式。它将运行必要的所有前述步骤(例如:compile)以运行集成测试。它不会浪费时间进行安装,因为install会在verify之后立即发生。

但是如果您在本地运行测试,那么直接在IDE中运行集成测试可能更好。这将为您提供更快的反馈循环。

答案 2 :(得分:1)

如果是Eclipse项目,最合理的做法是不是从命令行而是从Eclipse做所有事情。假设您安装了m2e插件,请转到your_project->run as->Maven test并运行它。

您既不需要install也不需要package阶段来运行Maven测试,package将创建一个测试不需要的jar,install会将此jar复制到当地的回购也没用。当Maven运行测试时,它使用来自目标dir的编译类,如果存在,则忽略项目的jar。

答案 3 :(得分:0)

是的,mvn isntall是最受欢迎的选项。它编译,打包和测试您的项目。