【问题标题】:Sharing src/test classes with Maven without version specification for test-jar与 Maven 共享 src/test 类,而没有 test-jar 的版本规范
【发布时间】:2015-11-14 04:12:02
【问题描述】:

我在多个模块之间共享 src/test 类,方法与 attaching tests guidefollowing question 中描述的类似。

所以,我有以下 pom.xml 依赖项:

       <dependency>
            <groupId>com.myco.app</groupId>
            <artifactId>foo</artifactId>
        </dependency>

        <dependency>
            <groupId>com.myco.app</groupId>
            <artifactId>foo</artifactId>
            <version>1.0.0-SNAPSHOT</version>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>

但是,与上面的问题相反,在附加 test-jar 时,我不想指定特定的 test-jar 版本。和编译级别依赖一样:

   <dependency>
      <groupId>com.myco.app</groupId>
      <artifactId>foo</artifactId>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>

在这种情况下,我的 pom.xml 出现错误,显示有关缺失版本的消息。为什么会这样?为什么我可以指定 没有版本的依赖项 而不是 test-jar ?有没有办法克服这个问题并让 test-jar 使用它可以找到的最新 jar?

【问题讨论】:

  • 看看这个答案是否符合您的需求:stackoverflow.com/questions/30571/…
  • 这是多模块构建吗?
  • @khmarbaise,是的,这是一个多模块构建。
  • @PauloSantos 谢谢,这是一个很好的来源。但我的问题不止于此 - 我想了解首先为什么,在我的情况下定义没有版本的依赖项不起作用(即使这不是推荐的做法)。
  • 指定没有版本的依赖是行不通的,因为 maven 就是这样设计的。但它只适用于插件,当你不指定插件 时,maven 将使用最新版本。 我知道 允许您使用没有版本的依赖项的唯一情况是,当您在 标记中已经定义了依赖项(带有版本)时

标签: java maven maven-3


【解决方案1】:

主代码依赖可以在没有版本的情况下使用的原因是我们项目中存在一个“主 pom”,它会自动为部分中的每个依赖生成适当的版本。因此,每个依赖项都可以不指定版本号。

另一方面,Test-jar 依赖项在传递依赖项中的其他任何地方都没有定义它的版本,因此必须指定特定版本。

【讨论】:

    猜你喜欢
    • 2018-12-19
    • 2013-01-21
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多