1

我正在尝试在测试期间在另一个 maven 模块中使用 test-jar 依赖项。因此,就像在这个问题(多模块项目中的 Maven 测试依赖项)和 maven 指南中一样,我在模块 A 中放置了一个 test-jar 目标,并将依赖项放在模块 B 中,我想在其中使用 A 中的一些类在我的测试中。Eclipse 可以正确识别我的所有类,当我从项目根目录运行全新安装,然后mvn dependency:tree在模块 B 中运行时,我看到模块 A。

但是,当我运行时mvn clean install,maven 抱怨说

... package 'my.package.in.module.A' does not exist

我的项目结构是

reactor
--module A
--module B

波姆一个:

  ...
  <plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-jar-plugin</artifactId>
   <version>2.2</version>
   <executions>
     <execution>
       <goals>
         <goal>test-jar</goal>
       </goals>
     </execution>
   </executions>
  </plugin>
</plugins>
...

波姆乙:

 ...
<dependency>
  <groupId>com.company.moduleA</groupId>
  <artifactId>module-A</artifactId>
  <version>moduleA-version</version>
  <type>test-jar</type>
  <scope>test</scope>
</dependency>

出于隐私考虑,我省略了版本/工件/等,但它们匹配正确。

我错过了什么吗?

编辑:这可能不是这个问题的正确解决方案,但我只是删除<type>test-jar</type>了它并让它在不使用它的情况下工作。

4

1 回答 1

4

有一种解决方法。使用 -DskipTests 代替 maven.test.skip。第二个也跳过了测试的编译,因此不会创建测试罐。

http://maven.apache.org/plugins/maven-surefire-plugin/examples/skipping-test.html

于 2016-03-08T09:00:46.917 回答