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

使用Gradle将来自子项目的构建工件收集到RPM中

毛峻
2023-03-14
Root
+---Sub1
|
+---Sub2

sub1项目生成JAR,sub2创建WAR。root项目的目标是生成同时包含sub1sub2输出的RPM。

我正在尝试使用ospackageGradle插件来构建RPM。以下是rootbuild.gradle的一部分:

ospackage {
    from subprojects.collect { it.tasks.withType(Zip) } into 'lib'
}

它可以工作,但是对于sub2JAR和WAR都是创建的,这是不希望的。

我正在寻找一些通用的解决方案,即在子项目上进行迭代比为每个子项目指定行为更好。

共有1个答案

宇文元明
2023-03-14

解决方案是在sub2项目的build.gradle添加WAR插件:

apply plugin: 'war'

使buildrpm任务依赖于根生成文件中的所有子项目生成任务:

buildRpm.dependsOn getTasksByName('build', true)

最后配置ospackage插件将工件收集到目标RPM中:

ospackage {
    from(subprojects.collect { "${it.buildDir}/libs" }) {
        into 'bin'
    }
}
 类似资料:
  • 我有一个多项目的设置,在这里我想从某些子项目构建Rpm文件,包含其他子项目的人工制品。看来我需要一些基本的基础知识。 项目布局如下: 这两个服务都依赖于CommonLibs。 我使用的是Nebula.os-Package 2.0.2和Gradle2.2快照版本。 null 所以,我想我应该在serviceA和ServiceB的中做这样的事情: 显然,这是行不通的: 好的,serviceA不是一个J

  • 我尝试使用gradle构建工具构建一个简单的android应用程序。但是我得到了这样的错误 方法无签名:org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile()适用于参数类型:(java.lang.String)值:[org.gradle.api.plugins: gradle and

  • 我是Gradle的新手,我刚刚开始使用多项目构建。目前,我正在为服务使用spring boot,我有以下目录结构 下面是根的配置 建筑格拉德尔(根) 设置。格拉德尔(根) 模块的Gradle配置 API-admin(模块) 我添加了jar闭包以防止运行时出错。这避免了它无法运行时说“没有清单”的问题 然而,即使在添加了jar闭包之后,现在也出现了一个新问题 现在我知道这是说找不到类,但我的问题是它

  • 上下文:从单个项目创建多个可执行jar-多包gradle项目 问题:我指的是链接中提供的解决方案,这有助于在构建中生成jar 注意:即使我使包名称与java文件名相同,生成的jar也不会执行。 我还注意到所有jar生成的文件大小都是一样的。希望面临的问题很清楚 我的项目结构(说明目的): Gradle文件(下面的相关部分,根据上面的链接Rest):

  • 问题内容: 我对Gradle(和Java 9,说实话)还很陌生,并且我正在尝试使用Gradle构建一个简单的库项目,该项目混合了Java 9和Kotlin。更详细地讲,在Java中有一个接口,在Kotlin中有一个实现。我会在Kotlin中做所有事情,但是无论如何都是Java,所以我决定采用这种方式。 我建立在IntelliJ Idea的基础上,外部定义了1.2.0 kotlin插件和gradle

  • 主要内容:1- 介绍,2- 示例模型,3-创建项目数学库,4- 创建另一个项目:MathWebApp,5- 创建GradleMain项目,6- 构建项目,7- 运行MathWebApp1- 介绍 本教程文章基于: Eclipse Java EE IDE for Web Developers. Version: Mars.1 Release (4.5.1) 如果您是初学者Gradle的。那么建议先看看初学者Gradle(Gradle Hello world)的文章: http://www.yiib