Java Gradle与API依赖
我有两个独立的项目,我不知道是否可以通过在build.gradle中使用API依赖项来修复NoClassDefFoundErrorJava Gradle与API依赖,java,api,gradle,build,dependencies,Java,Api,Gradle,Build,Dependencies,我有两个独立的项目,我不知道是否可以通过在build.gradle中使用API依赖项来修复NoClassDefFoundError implementation name: 'Project1' 在我的第一个项目中,我使用这个库: // https://mvnrepository.com/artifact/org.apache.bcel/bcel compile group: 'org.apache.bcel', name: 'bcel', version: '6.5.0' 在这个项目的一些
implementation name: 'Project1'
在我的第一个项目中,我使用这个库:
// 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中生成工件并在第二个项目中将其作为导入使用
implementation name: 'Project1'
执行此操作时,会出现以下错误:
Step failed
java.lang.NoClassDefFoundError: org/apache/bcel/verifier/exc/AssertionViolatedException
这可以通过在第一个项目中使用API依赖项而不是在第二个项目中添加bcel依赖项来解决吗
谢谢 如果您使用IntelliJ,则可以将第一个项目配置为 否则,您可以将project1发布到mavenLocal,并在第二个项目中使用。这意味着您也要声明与组和版本的依赖关系
implementation group: 'org.group', name: 'Project1', version: '1.0'
文件表明,在这种情况下,最好使用a
另一个选项是创建一个包含project1和project2的项目。在此设置中,project2将在project1上声明一个
implementation project(':project1')
如果使用IntelliJ,则可以将第一个项目配置为 否则,您可以将project1发布到mavenLocal,并在第二个项目中使用。这意味着您也要声明与组和版本的依赖关系
implementation group: 'org.group', name: 'Project1', version: '1.0'
文件表明,在这种情况下,最好使用a
另一个选项是创建一个包含project1和project2的项目。在此设置中,project2将在project1上声明一个
implementation project(':project1')
第一个项目就像一个基础项目,一些团队需要Jar文件作为输入。在这种情况下,复合构建是正确的吗?第一个项目应该是与其他项目相关的,我不应该指定我想要链接第一个项目的项目。这实际上取决于基础项目是否在某个地方发布(如nexus),或者它是否总是在本地编译。例如,如果基础项目位于同一个git repo中,并且在本地编译,那么我将使用多项目构建并将其作为项目导入。是的,它是在本地编译的,我将尝试使用多项目构建方法。谢谢第一个项目就像一个基础项目,一些团队需要Jar文件作为输入。在这种情况下,复合构建是正确的吗?第一个项目应该是与其他项目相关的,我不应该指定我想要链接第一个项目的项目。这实际上取决于基础项目是否在某个地方发布(如nexus),或者它是否总是在本地编译。例如,如果基础项目位于同一个git repo中,并且在本地编译,那么我将使用多项目构建并将其作为项目导入。是的,它是在本地编译的,我将尝试使用多项目构建方法。谢谢