Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Gradle与API依赖_Java_Api_Gradle_Build_Dependencies - Fatal编程技术网

Java Gradle与API依赖

Java 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' 在这个项目的一些

我有两个独立的项目,我不知道是否可以通过在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'
在这个项目的一些方法中,我抛出了这个异常:

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中,并且在本地编译,那么我将使用多项目构建并将其作为项目导入。是的,它是在本地编译的,我将尝试使用多项目构建方法。谢谢