【问题标题】:how gradle add code and resources from another sub-project to the sub-projectgradle如何将另一个子项目的代码和资源添加到子项目中
【发布时间】:2021-11-12 00:10:20
【问题描述】:

我有一个我的世界织物模组项目

这是它的结构

airgame-api-parent:
    airgame-api-common:
    airgame-api-client:
    airgame-api-server:
    airgame-api-all:

最初,我将它们构建为单个项目,但随着代码和功能的增加,我在我的项目中添加了一些其他依赖项。比如mysql-connectorHikariCP
它只需要在服务器端,因为客户端不需要连接我的 sql。
但是mysql-connector 太大了。它导致我的 jar 文件大小从 100KB+ 增加到 4MB+。
我认为这是无法忍受的。

所以我拆解了我的项目。

项目airgame-api-common是通用环境代码:可以在客户端和服务器上运行。

项目airgame-api-client 是客户端专用代码。它可以与客户端一起运行。这取决于api-common

项目airgame-api-server 是服务器端代码。它只是可以与服务器一起运行。它也取决于api-common

api-server 包含一些服务器端代码。例如mysql-connectorHikariCP

最后,api-all 包含api-commonapi-clientapi-server 的所有代码。这样我在编码其他项目时就不需要同时导入api-clientapi-server了。 (其实我做不到,因为api-clientapi-server使用了相同的mod_id。如果我导入它们,当我执行测试时,运行环境将包含这两个依赖项,然后由于@987654343而崩溃@冲突。)

好的,首先我尝试在api-client 中使用api project(":airgame-api-common"),但它现在可以工作了,其他依赖api-client 的项目仍然看不到api-common。我猜可能插件fabric-loom 改变了 gradle 的构建或依赖逻辑。

fabric-loomdocs 说我需要使用modApi,我试过了,但是好像不能用来导入自己的子项目。

好吧,不好意思说了很多与问题无关的话,但我只是想表明我已经尽力解决了问题。

所以现在我猜还剩下一种方法:在 gradle 开始编译代码之前,将 api-common 中的类路径和资源添加到其他项目。我觉得修改build.gradle可以,但是不知道怎么办。

我尝试阅读 gradle 的文档,但是我对这个软件真的不是很了解,所以找不到太多有用的信息。谁能告诉我?

我需要api-client编译文件有自己的代码和api-common代码,并且api-common代码需要对依赖api-client的项目可见。(这也是@所必需的987654357@和api-all。但是我想如果你教我配置api-client,我应该可以配置其他人。)

最后,我的英语不是很好,但我尽力表达我的意图。我没有伤害任何人的意思。如果我冒犯了你,请原谅我。

【问题讨论】:

    标签: java gradle minecraft-fabric


    【解决方案1】:

    好的,我在另一个答案中找到了答案:Gradle: common resource dependency for multiple java projects

    sourceSets.main {
        java.srcDirs += [
            project(':api-common').sourceSets.main.java,
            project(':api-common-server').sourceSets.main.java
        ]
        resources.srcDirs += [
            project(':api-common').sourceSets.main.resources,
            project(':api-common-server').sourceSets.main.resources
        ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      相关资源
      最近更新 更多