gradle和api依赖

67up9zun  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(458)

我有两个独立的项目,我不知道是否可以通过在build.gradle中使用api依赖来修复noclassdeffounderror
在我的第一个项目中,我使用这个库:

// https://mvnrepository.com/artifact/org.apache.bcel/bcel
compile group: 'org.apache.bcel', name: 'bcel', version: '6.5.0'

在这个项目的一些方法中,我抛出了一个异常:

throw new AssertionViolatedException("Response validation for " + HeaderValue + "Actual as " + StrActual + " Expected " + StrExpected);

如果我在build.gradle中生成工件并在第二个项目中将其作为import使用

implementation name: 'Project1'

这样做会产生错误:

Step failed
java.lang.NoClassDefFoundError: org/apache/bcel/verifier/exc/AssertionViolatedException

这可以通过在第一个项目中使用api依赖项而不是在第二个项目中添加bcel依赖项来解决吗?
谢谢!

368yc8dk

368yc8dk1#

如果使用intellij,可以将第一个项目配置为复合生成。
否则,您可以将project1发布到mavenlocal,并在第二个项目中使用mavenlocal存储库。这意味着您要声明与组和版本的依赖关系。

implementation group: 'org.group', name: 'Project1', version: '1.0'

文档表明,在这种情况下,最好使用复合构建。
另一种选择是进行多项目构建,包括project1和project2。在此设置中,project2将声明project1上的子项目依赖关系。

implementation project(':project1')

相关问题