当前位置: 首页 > 知识库问答 >
问题:

Maven模块找不到scalatest的依赖项

程淮晨
2023-03-14

在使用scalatest时,我遇到了一个奇怪的问题。我有一个带有多个模块的maven项目。如果我直接在模块中执行mvn测试。它可以正常工作,但如果在根文件夹中执行,它会抱怨编译时缺少包(依赖项)。

我的配置如下所示:

    <dependency>
      <groupId>org.scalatest</groupId>
      <artifactId>scalatest_${scala.shortversion}</artifactId>
      <version>3.0.0-SNAP2</version>
    </dependency>
    <dependency>
      <groupId>org.scalatest</groupId>
      <artifactId>scalatest-maven-plugin</artifactId>
      <version>1.0</version>
    </dependency>

插件配置:

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.7</version>
            <configuration>
              <skipTests>true</skipTests>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.scalatest</groupId>
            <artifactId>scalatest-maven-plugin</artifactId>
            <version>1.0</version>
            <configuration>
              <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
              <junitxml>.</junitxml>
              <filereports>WDF TestSuite.txt</filereports>
            </configuration>
            <executions>
              <execution>
                <id>scala-test</id>
                <goals>
                  <goal>test</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

如果我从maven scala插件中删除目标,它将编译,但scalatest将找不到测试源并退出,并且没有执行任何测试

        <plugin>
            <version>2.15.2</version>
            <groupId>org.scala-tools</groupId>
            <artifactId>maven-scala-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>compile</goal>
                  <goal>testCompile</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <scalaVersion>${scala.version}</scalaVersion>
            </configuration>
        </plugin>

你知道我做错了什么吗?!

干杯

共有1个答案

亢建木
2023-03-14

在没有看到所有pom的情况下很难说,但一般来说:在root Pom中定义您在依赖管理部分中的所有依赖项,在pluginManagement部分中定义您的插件及其配置。在子pom中,仅定义您需要的那些插件和依赖项。

请记住,xxxManagement部分只构建共享定义,即一种根配置。您仍然需要在插件和依赖项部分定义所需内容,但可以省略版本和配置元素

这将允许您的所有子POM在所有模块中运行测试。

 类似资料:
  • 我在Maven中有一个相当简单的带有子模块的项目结构: 在中,我定义了所有子模块的属性,如库版本或插件配置: 直接在节点中设置库版本。 在中设置节点。 尝试不同的库版本。 使用以及库是否存在。 在中运行。 在中运行。 在中运行 在中运行。 在中运行。

  • 问题内容: 我有一个多模块项目:父POM.xml: rest-client-microservice的POM.xml如下所示: email-commons模块的POM.xml如下所示: 如果我尝试在父项目上执行,则会得到以下结果: 我已经在这个问题上困扰了好几天,但是我不知道为什么这不起作用。 问题答案: 我想到了。rest-client-microservice是一个Spring Boot项目,

  • 我和我的朋友正在做一个Java maven项目,它的设置和我们从Git得到的项目是一样的。在我的设置中,Maven正确地导入了所有依赖项,但对于我的朋友,它找不到任何依赖项。 我们尝试过的事情: 右键单击project,单击maven并单击Reimport。 我们都可以上网,所以这也不是问题。而且,Maven在IntelliJ中设置为自动导入。

  • 我创建了一个Maven项目,并添加了所需的依赖项。当我尝试构建项目时,会出现以下错误: 我的依赖关系确实表明,图书馆在那里: 其中包括必要的包: 以下是我的简历: 我对Java比较陌生,对Maven也很陌生,但是当我右键单击和时,我输入了适当的GroupID和artifactID和版本(如Maven Central中列出的),它会自动下载文件。不确定我还缺少什么。感谢任何帮助。 编辑:我应该注意,

  • 我有以下目录结构: Android模块依赖于与AndroidProject在根目录中处于同一级别的所有java gradle项目。 在AndroidProject/settings中。gradle我有: 然后在AndroidProject/AndroidModule/build中。gradle我的依赖项设置如下: 当我调用时,这种依赖结构完美地工作和项目构建 在AndroidProject/bui

  • 我想在Java应用程序中包括Postgres JDBC驱动程序,所以我将其添加为maven依赖项。我从这个列表中选择了最后一个版本,令我惊讶的是,它恰好是由Atlassian主持的。现在我收到这个错误: 丢失的工件postgresql: postgresql: jar: 9.4.1208-jdbc42-atlassian托管 我还尝试了一个不由Atlassian托管的旧版本,但得到了相同的错误!有