java – Maven项目设计 – 共享一个共同的项目

前端之家收集整理的这篇文章主要介绍了java – Maven项目设计 – 共享一个共同的项目前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是Maven的新手,我正在尝试将一些项目转换为Maven工作,我不确定构建它们的正确方法是什么 – 这就是我所拥有的:

我有一个共同的模块 – 名为Common和两个不同的应用程序,它们都不依赖于Common这一事实.我们称他们为A和B.

A-> Common和B-> Common之间的依赖关系既适用于运行时也适用于测试 – 这意味着A的测试类需要Common的测试类.

我尝试了各种我能想到的组合 – 但是他们没有产生我想要的东西.
奇怪的是我的代码编译,但JUnits失败,因为在类路径中找不到Common的测试类.

我应该向Common添加2个配置文件以创建2个工件,并在A和B中为这两个工件添加2个依赖项吗? (那可能吗?)
有没有正确的方法来做我想要的?我应该重构我的代码以适应Maven吗?

解决方法

这是一个常见的maven陷阱.当您依赖该工件时,工件中的测试类不可用.这实际上是合理的:当你依赖Common时,你依赖于生产类(JAR文件).测试类仅用于运行测试,甚至不包含在最终的JAR中.

假设您的Common测试类包含所有Common测试,A和B测试所需的一些实用方法,这里是一个建议的结构:

> Common-test – 在/ src / main / java(!)中包含通用实用程序测试类(不是测试用例!)> Common依赖于Common-test with< scope> test< / scope>> A和B依赖于Common(默认范围)和Common-test(带测试范围)

猜你在找的Java相关文章