当前位置: 首页 > 知识库问答 >
问题:

具有多个模块的Gradle库

浦泳
2023-03-14

我有一个带有多个模块的gradle(Android)库,有些模块依赖于其他模块(与这里的答案非常相似)https://stackoverflow.com/a/41761846/906362)

root/
  |- module1 -> (no dependncy)
  |- module2 -> compile project(':module1')
  |- module3 -> (no dependncy)
  |- module4 -> compile project(':module1') compile project(':module3')
  |- etc...

这对开发很有用,因为我可以对任何模块进行更改,并看到它们反映在其他模块上。但是要将构建发布到jcenter(),我需要依赖项作为它们的在线版本。比如:

root/
  |- module1 -> (no dependncy)
  |- module2 -> compile '<group>:modules1:<version>'
  |- module3 -> (no dependncy)
  |- module4 -> compile '<group>:modules1:<version>' compile '<group>:modules3:<version>'
  |- etc...

因此,当它被添加到项目中时,它正确地引用了在jcenter()上找到的版本,而不是在使用编译项目(': module1')时添加的UNSPECIFIED依赖项。

目前,我已发布到本地maven副本,将依赖项更改为使用编号版本,然后发布到jcenter()。但这是很多人工工作,对CI不起作用。

问题:

我该如何使这项工作更理智?

我的意思是,我如何使用本地机器上的代码/调试,但是使用正确的group: moder: version生成POM。

编辑:要添加更多信息:

我在这里使用这个脚本https://github.com/sensorberg-dev/gradle-bintray-push/blob/master/gradle-bintray-push.gradle生成依赖和上传。

当前,编译项目的依赖项生成如下:

<dependency>
  <groupId>_name of the project_</groupId>
  <artifactId>_name of the module_</artifactId>
  <version>unspecified</version>
  <scope>compile</scope>
</dependency>

我需要用项目的实际group和artifactId生成这些。

共有1个答案

蓝鸿哲
2023-03-14

您应该使用编译项目(':module1')进行module2构建。格雷德尔档案。

运行/gradlew clean-Pgroup=GROUPNAME-Pversion=VERSION uploadArchives(或通过gradle.properties设置这些参数)

如果使用JitPack,它会自动执行此操作

 类似资料:
  • 我有一个基于java和kotlin的多模块gradle项目。我正在尝试设置声纳分析。我在根项目中配置了sonar,并用CircleCI进行了分析。sonarcloud中的结果仅适用于其中一个子项目。 我的项目结构如下: 项目A/构建。格拉德尔 项目B/构建。格拉德尔 ProjectC/build。格拉德尔 建造。格拉德尔 这是我的根构建。格雷德尔。

  • 我在项目中有两个模块(和)运行集成测试。我希望在测试之前,我的应用程序将使用liquibase启动和滚动迁移,但由于我通过集成测试模块运行应用程序,liquibase正在寻找一个关于该模块的主文件,该文件导致了错误。因为主文件位于miom应用程序()的模块中

  • 我试图在一个多模块的gradle项目中使用Springdoc,但我无法使它工作。有人做过类似的事情吗? 我的Gradle项目结构如下: My project 应用程序 与模块1相同 Application模块依赖于每个模块项目和 在API子模块上有:

  • https://docs.gradle.org/current/userguide/jacoco_plugin.html 并使用Gradle过滤JaCoCo覆盖报告 但没有发现任何线索 以下是gradle文件的内容 下面看我自己的答案

  • 我有一个gradle android项目,有两个模块: 穿 在我的gradle配置中,我有不同的构建类型。默认设置(debug和release,每个都有自定义设置)以及dev和beta构建类型(也有自定义签名、自定义proguard和自定义applicationIdSuffix)。 我现在想做的是使用构建类型测试版(gradle清洁组件测试版)构建应用程序包。这就开始在测试版中构建应用程序,看到它

  • 回到历史 我有这个android库,开发人员可以正常使用 现在我们正在从头开始重写库以创建V3。 在这个重组中,我们设法将lib分解成模块。所以可以说在V3上我们会有以下文物 这将为gradle结构提供以下模块: 对于其提供了一个,这样就可以使用模块中的所有内容,但实际上不需要在内部编译它。 但是我也想为现有的主机应用程序提供一个简单的迁移路径。意思是,我希望在V3上也有以下结合了和的工件(这基本