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

具有多个应用程序的分级根项目

唐宇定
2023-03-14

如何使用多个使用相同库的应用程序创建gradle根项目。我希望以包含以下内容的tar和zip文件结束:

RootProject/
  bin/
    Command1
    Command2
    ...
  lib/
    Library.jar
    ..
RootProject/
  settings.gradle
  build.gradle
  common.gradle
  Library/
    build.gradle
    src/main/java/Library.java
  Command1/
    build.gradle
    src/main/java/Command1.java
  Command2/
    build.gradle
    src/main/java/Command2.java
apply plugin: 'base' // To add "clean" task to the root project.

allprojects {
    repositories {
        mavenCentral();
    }
}

subprojects {
    apply plugin: 'java'

    group = 'edu.csusb.ecs.gmailsettings'
    version = '1.0-SNAPSHOT'

    dependencies {
        testCompile group: 'junit', name: 'junit', version: '4.10'
    }
}

task build(type: Copy) {
    dependsOn subprojects.build
    from subprojects.collect { it.tasks.withType(Jar) }
    into project.rootProject.buildDir.toString() + "/libs"
}

task clean(group:project.rootProject.ext.group, type: Delete, description:"clean jars from subprojects") {
    delete fileTree(project.buildDir).include('**/*')
}

导致错误

共有1个答案

章涵容
2023-03-14

在我的根项目build.gradle中,我定义了一个任务,将所有子项目jar文件复制到根项目的/build/libs文件夹中,如下所示:

task build(type: Copy) {
    dependsOn subprojects.build
        // from subprojects.collect { it.tasks.withType(AbstractArchiveTask) }
        from subprojects.collect { it.tasks.withType(Jar) }
        into project.rootProject.buildDir.toString() + "/libs"
}

task clean(group:project.rootProject.ext.group, type: Delete, description:"clean jars from subprojects") {
    delete fileTree(project.buildDir).include('**/*')
}

您应该能够以类似的方式将任何其他构建人工制品复制到根项目。

 类似资料:
  • 我有一个非常基本的多项目分级设置,如下所示: 文件包括这两个子项目。根项目不应用java插件,但两个子项目都应用了。使用时,所有东西都按预期生成。 但是,据我所知,由于我没有在根项目中应用插件,因此它不应该有任务。 的输出显示任务。 但的输出只显示列有和。 所以我的问题是--在这个场景中到底执行了什么?gradle只是找到所有子项目中匹配供应模式的每一个任务吗?是否有关于此任务名称解析的特定规则?

  • 我有以下匕首组件结构: 客户端代码如下所示: 我决定将应用程序分成几个分级模块。我希望有分级模块和2个模块和,它们依赖于核心但彼此不了解。 我的问题是,使用从和导入来创建子组件。因此依赖于和。 我试图使用来解决这个问题,但这也需要在根组件中拥有一组所有子组件的dagger模块。 有没有什么方法可以去除根组件对子组件的依赖关系。 通过根组件的依赖关系,我的意思是它应该了解使用它的所有子组件。 根据d

  • 问题内容: 我有一个Appp类,它从Application扩展并在清单中调用Appp。 还有两个jar,每个作者都说在清单中将它们称为Application标记。 根据android问题中如何处理多个应用程序类,要具有从Application扩展的多个应用程序类,我们应该从另一个应用程序类扩展某个应用程序类,并在清单中调用上层类。 但就我而言,我没有资源,只有罐子。我能做什么?! 问题答案: 解决

  • 我正在构建一个应用程序,它有任意数量的“微社区”。目前,一个用户只能属于一个,所以当他们最初注册时,他们输入一个秘密代码,将他们与相关社区联系起来。 将这些“微社区”(由未来在应用程序上玩一个空间的客户拥有)分离成单独的Firebase项目或将所有数据保存在一起是明智的吗?

  • 我有一个有两个阶段的Dockerfile;第一阶段从源代码构建一个react应用程序,第二阶段复制构建并添加一个NGINX服务器: 我也在使用gitlab-ci,我希望有多个阶段:构建、测试和部署。但是我不知道如何将构建和测试阶段分开,因为我使用的是多阶段的DockerFile。问题是所有的JS测试(对于React)都需要在“Yarn build”执行之前运行,并且build被复制到seconds