小编van*_*zer的帖子

无法使Maven测试范围的依赖项与Java 9(也不是10个)模块一起使用

编辑:我分析了给定的答案.特别是我测试了Till Brychcy的假设,这个假设似乎成立了,但开了更多问题.在以下大分隔符之后,我在问题的最后添加了分析:"-----------分析Till Brychcy的答案----------"

它以某种方式编译并在IJ中运行,但mvn clean install无法编译测试

2个模块的说明,以及失败的内容

我有一个带有2个模块的java 9 maven项目:apimodclientmod.模块clientmod依赖于模块apimod(这些模块都是Maven模块和Java 9模块).

此外,我希望模块clientmod不仅可以重用生产代码apimod,还可以重用测试代码.这是一个常见的模式,我多次使用Java 8.使用Java 9(它与Java 10相同)它也可以正常工作,只要我不声明module-info.java(也就是说,只要我不这样做)运行模块系统).

但是一旦我这样做,启用测试依赖性似乎会禁用生产依赖:( api.Basesrc/main类模块apimod)不再可见client.test.DerivedTest(一src/test类模块clientmod).测试不再编译.

这是Maven还是Java 9中的错误?这是最新版本:Java 9.0.4(与Java 10相同),Maven 3.5.3,maven-compiler-plugin 3.7.0

我的分析到目前为止

代码

源代码位于:

git clone https://github.com/vandekeiser/wires.git
Run Code Online (Sandbox Code Playgroud)

我对分支中的测试失败问题进行了"二分法":

git checkout MINIMIZE_ISSUE
`mvn clean install` 
Run Code Online (Sandbox Code Playgroud)

- > BUILD FAIL(测试中的编译错误clientmod)

Maven测试范围的依赖

我希望模块clientmod不仅可以重用生产代码,apimod还可以重用测试代码.使用Maven,你就像那样(clientmod/pom.xml):

<dependency>
    <groupId>fr.cla</groupId>
    <artifactId>apimod</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java maven java-9 java-10

8
推荐指数
1
解决办法
457
查看次数

标签 统计

java ×1

java-10 ×1

java-9 ×1

maven ×1