【问题标题】:maven package submodule and test the parentmaven 打包子模块并测试父模块
【发布时间】:2014-11-02 09:12:07
【问题描述】:

我是一个专家新手。 我的测试项目依赖于模块项目(extended-java-client)。 我需要在模块路径上运行“mvn clean package”,这给了我扩展-java-client-Jar。

然后,我需要运行“mvn clean install test”来运行测试项目。 但它不工作,它没有找到模块。 (我已经在 pom.xml 文件中添加了模块/父标签)

有什么想法吗? 提前致谢

这是我项目的结构:

Project A
  *Extended-java-client(Module)
      *pom.xml (jar file)
  *src(the test classes)
  *pom.xml

扩展-> pom.xml

 <parent>
      <groupId>project name</groupId>
      <artifactId>project name</artifactId>
      <version>1.0-SNAPSHOT</version>
      <relativePath>../pom.xml</relativePath> // path to main pom
  </parent>

项目-> pom.xml

<modules>
   <module>extended-java-client</module>
</modules>

【问题讨论】:

    标签: java maven pom.xml


    【解决方案1】:

    当你构建 extended-java-client 时,你应该使用 run $ mvn clean install 而不是 $ mvn clean package

    原因:package 创建了 jar,但将其保留在 extended-java-client/target/ 目录中,因此 jar 文件仅对该项目可见。

    调用 install 会将 jar 复制到 Maven 所称的“本地存储库”中,以便其他项目(例如您的测试项目)可以访问它。

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      “它不工作”到底是什么意思?你可以提供错误消息吗?

      我建议使用Standard Directory Layout,尤其是从 Maven 开始时。

      但是,您不必运行mvn clean install testtest 阶段自动在install 阶段之前执行(也在package 阶段之前)。

      参见Introduction to the Build Lifecycle, Default Lifecycle“这些构建阶段 [...] 按顺序执行以完成默认生命周期。”

      【讨论】:

      • 运行测试失败。它无法识别类的模块。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-28
      • 2015-11-20
      • 2019-09-21
      • 1970-01-01
      • 2018-08-31
      相关资源
      最近更新 更多