0

我有一个这样的gradle项目:

root
  |
  |---- projectA
  |   |
  |   |----main
  |
  |---- projectB
  |   |
  |   |----test
 ...

projectA 正在将 springboot 1.0 升级到 2.0
projectA gradle.build 是这样的:

...
jar {
    enabled = true
}
...

并且 projectB 测试依赖于项目 A
projectB gradle.build 是这样的:

...
dependencies {
    testCompile project(':projectA')
}
...

运行 ./gradlew :projectB:test 时发生编译错误
糟糕的签名¾4s9

错误信息是:

xxx.TestSupport.java:20: error: cannot access QueryManager
bad class file xxx/xxx/QueryManager.class
bad signature ¾4s9

TestSupport.java 在 projectB
中,QueryManager 在 projectA 中。并且 querymanager 类使用 lombok 和 ea.async。

TestSupport.java 的内容是:

@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = {
        MysqlConfigurationSelector.class
},
properties = {"query.mysql.nio.enable=true","query.mysql.port=9011"})
@RunWith(SpringRunner.class)
@ActiveProfiles("test")
public abstract class TestSupport {}

我搜索了很多,但找不到任何有用的东西。

4

1 回答 1

0

我已经解决了这个问题。eaAsync lib ((github.com/electronicarts/ea-async) 最新版本 1.2.3 导致编译错误。当降级到 1.0.5 时,问题解决了。

于 2020-05-13T03:34:03.810 回答