在Maven中,依赖项通常设置如下:
<dependency>
<groupId>wonderful-inc</groupId>
<artifactId>dream-library</artifactId>
<version>1.2.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
现在,如果您正在使用频繁发布的库,不断更新<version>标记可能有些烦人.有没有办法告诉Maven始终使用最新的可用版本(来自存储库)?
我有一个多模块Maven项目.为了这个例子,考虑两个模块:
dataconsumer模块consumer将模块data作为依赖项.
Module data声明了一堆核心类.有一些测试src/test使用它们.这些测试需要一些冗长的对象创建,因此我有一个类,其中包含一些实用方法来创建这些对象.此实用程序类(SampleDataHelper)位于src/test层次结构中.
我还在consumer模块中进行了一些测试,需要创建一些这些冗长的对象.我想在我的树中的测试中使用我的SampleDataHelper类(定义data src/test)consumer src/test.不幸的是,即使data是依赖关系consumer,consumer也看不到存在的类data src/test.
为了解决这个问题,我想我可能会创建另一个模块(data-test),然后移动SampleDataHelper到它下面src/main.然后我将包含data-test作为测试范围的依赖关系data.不幸的是,这引入了循环依赖:data使用data-test,但data-test也需要data.
我想出了唯一的解决办法是把SampleDataHelper下data src/main一个下test包装,并希望没有真正的应用程序代码以往任何时候都调用它.
如何SampleDataHelper在模块之间共享我的课程而不将它放在一起src/main?