【问题标题】:Maven: How to manage test code module dependenciesMaven:如何管理测试代码模块依赖
【发布时间】:2021-09-05 02:10:21
【问题描述】:

我们通过迁移工具将一个 ant 项目(代号之一)迁移到了一个 maven 项目。不幸的是,仍然存在问题。不知何故,测试源目录(通过 pom.xml 中的testSourceDirectory 设置)成为错误模块的一部分(至少在 IntelliJ IDEA 的项目视图中如此显示)。因此测试源代码缺少必要的核心依赖。核心代码(实际实现)在“common”模块中。即使测试代码位于(在 IntelliJ 中)“common”模块下,它本身也被标记为“cn1libs”模块的一部分。我们不知道 ide 或 maven 如何从 pom 配置中得出结论。

来自 pom 的 sn-p:

<testSourceDirectory>${project.basedir}/common/src/test/java</testSourceDirectory>

无法解析测试源中的依赖项

我们如何解决这个问题?

【问题讨论】:

  • 通过&lt;testSourceDirectory&gt;...设置这样的东西是完全错误的...在Github或类似网站上做一个示例项目...

标签: maven intellij-idea codenameone


【解决方案1】:

如果在 pom 文件中存在多个引用该目录的模块,有时 IntelliJ 会给您这样的错误标签。检查您的 cn1libs/pom.xml 文件并确保它没有在任何地方指定&lt;testSourceDirectory&gt;。它的封装类型也应该是pom

Codename One 项目设置为使用 Codename One 测试运行器进行单元测试。它使用自己的“测试”目标。您正在导入 junit 的 Test 类,除非您真的知道自己在做什么,否则这里可能会出现问题。例如。 Codename One 测试运行者将设置测试环境并在模拟环境中运行测试。 Junit 将直接运行它们。

但是,如果您需要添加测试依赖项,您应该可以将它们添加到 common/pom.xml 文件的 dependencies 部分,只需确保将依赖项范围设置为“测试”。

【讨论】:

  • 实际上就在我们阅读您的回答之前,我们注意到错误的标签实际上是 intellij 的事情,因为在取自 start.codenameone.com 的模板项目中发生了同样的事情,但该项目运行没有任何问题.而且,根据您的依赖项建议,我们设法通过 intellij 的 conext 菜单添加了这些依赖项。我打算在这里发布这个进展,但注意到你已经指出了它的正确性,谢谢
  • 唯一仍然造成问题的是以下(希望我们自己修复):[错误]反应器中的项目包含循环引用:'Vertex{label='org. xyz:app-CN1CircleProgress:1.0-SNAPSHOT'}' 和 'Vertex{label='org.xyz:app-common:1.0-SNAPSHOT'}' 在图中引入循环 org.xyz:app-common:1.0-SNAPSHOT --> org.xyz:app-CN1CircleProgress:1.0-SNAPSHOT --> org.xyz:app-common:1.0-SNAPSHOT @
猜你喜欢
  • 2011-10-14
  • 1970-01-01
  • 2012-07-19
  • 2018-04-19
  • 2017-06-06
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多