gpt4 book ai didi

java - 了解 Intellij 中 Maven 的正确工作流程

转载 作者:行者123 更新时间:2023-12-01 10:17:43 24 4
gpt4 key购买 nike

在使用 Intellij IDEA 开发 Java 项目时,我第一次使用 Maven。主要是因为它的依赖处理功能。

现在,我试图了解什么是“正确的”一般工作流程。要运行测试,我想我应该使用 Maven 项目 View 中的 test 阶段按钮(是否有更多图形选项)?

但是运行该项目怎么样?我应该安装 Maven exec 插件并在 Intellij 中使用它吗?或者我应该像以前一样使用 ALT + SHIFT + F10 运行?

最佳答案

在典型的独立 Java 程序环境中,您可以按照您的描述调用各个 Maven 阶段。它们本质上相当于运行 mvn <phase or plugin:goal>从命令行。我发现它更有能力确保我从命令行构建和运行工作。因此,我不怕花时间来确保命令行构建工作正常。

在单元测试时,是的,您应该使用 Alt+Shift+F9在测试类中(在为功能创建新的测试类之后)对其进行调试或 Alt+Shift+F10来运行它。 IDEA 可以满足您所需的一切

  1. 运行全类
  2. 运行单个测试方法

从 IDE 中。上Alt+Shift+F9 ,它内部运行一个 JUnitStarter 类,该类相当于 Maven 的 Surefire 插件(但不相同)。以下是控制台显示的内容:

/Library/Java/JavaVirtualMachines/8/Contents/Home/bin/java 
..../repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"
com.intellij.rt.execution.junit.JUnitStarter -ideVersion5
org.kedar.java.reallyimp.ch1.Ch1Test

如果您使用它来开发 Web 应用程序,那么您通常会选择部署应用程序的部署目标(例如 GlassFish 或 Tomcat)。当然,您需要使用大量插件来执行此操作,但希望您拥有所有正确的 archetypes可供选择,这样您就可以上路了。

使用方便的“编辑配置”菜单设置部署目标后,您只需“运行或调试”该配置即可。这样,您可以在类(例如 servlet)在实际运行时执行时进行调试。 IDEA 对修改时动态加载类有一些支持(在实践中非常有用)。对于更复杂的设置(或 JSP 页面),您应该考虑使用 ZeroTurnaround(付费产品)中的 JRebel,尽管这是您的决定。

简而言之,让一切在 IDE 中运行。这是很有可能的,而且 IDEA 确实帮助我们保持生产力。但是,在将您的工作推送到存储库之前,请确保您的命令行构建例如mvn test , mvn verify等等作品。

实际工作流程(OP 评论的答复)

  1. 假设我想使用 apache-commons 类 FileUtils 。我创建一个类 FileUtilsClient.java只需输入 FileUtils 。 IDEA 相当聪明地问我如何处理它。我要求它将它添加为 Maven 依赖项。请参阅here .
  2. 我将代码添加到名为 areSame(File f1, File f2) 的方法中使用说 FileUtils.contentEquals(File, File) 。此时,继续查看您的 pom.xml。 IDEA 会添加适当的依赖项代码,因为这种流行的依赖项位于互联网上可用的中央存储库中。
  3. 然后我想为我刚刚编写的方法创建一个单元测试。我转到我的类(class)声明并执行 Cmd+Shift+T 。 IDEA 让我创建一个新的测试,因为这是一个全新的类(class)。如果类(class)已经有测试课,它会邀请我去那里。
  4. 我创建 JUnit 4 Test .
  5. 我编写了测试方法@Test public void testSameness()在我的类中测试 areSame 方法。
  6. 然后我转到方法声明 testSameness()并做Alt+Shift+F9 IDEA 再次形成正确的类路径并运行我的测试。甜的。这是它运行的命令(和预期的 proof that it is doing it ,通过包含 commons-io.jar 的路径)。

关于java - 了解 Intellij 中 Maven 的正确工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35802561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com