Gradle如何为Minecraft Fabric模组子项目引入其他子项目的代码与资源
airgame-api-client 模块 build.gradle 配置
直接在airgame-api-client的build.gradle文件中添加如下配置即可实现将airgame-api-common的代码、资源合并到当前模块编译产物中,且对外可见:
// 合并common模块的源码与资源到当前模块 sourceSets { main { java { srcDir project(':airgame-api-common').sourceSets.main.java.srcDirs } resources { srcDir project(':airgame-api-common').sourceSets.main.resources.srcDirs } } // 若需要单元测试也能访问common的代码,可添加下面的测试配置 test { java { srcDir project(':airgame-api-common').sourceSets.test.java.srcDirs } resources { srcDir project(':airgame-api-common').sourceSets.test.resources.srcDirs } } } // 可选:如果之前声明过对common的api/modApi依赖可以删除,已经不需要依赖传递了 dependencies { // 删掉下面这类旧配置即可 // api project(":airgame-api-common") // modApi project(":airgame-api-common") }
配置说明
- 该配置相当于直接把common模块的源码、资源路径挂载到当前模块的编译路径下,编译时会直接将两者的代码、资源一起打包进当前模块的jar产物,完全绕过fabric-loom对依赖传递的修改逻辑
- 依赖当前模块的项目可以直接访问common模块的所有公开类、方法、资源,不需要额外添加对common的依赖
- 该配置可直接复用给airgame-api-server、airgame-api-all模块,只需要按需调整需要合并的模块即可
内容的提问来源于stack exchange,提问作者叁只仓鼠
相关产品推荐
相关产品推荐

