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

如何在Gradle中为一个复合项目创建战争?

端木飞
2023-03-14

我使用的是Eclipse BuildshipV2.1.2用于Gradle。我有两个独立的web项目,P1和P2,还有一个项目,P3,它作为所有其他项目的依赖项。我的任务是创建一个主构建,用它可以从P1和P2构建和生成WAR文件,并从P3生成JAR文件。我应该包含这个P3 jar文件作为P1和P2的依赖项。我创建了一个composite-build,

    null

P2

  • Build.Gradle
  • html" target="_blank">settings.gradle
  • Build.Gradle
  • settings.gradle
task run {
    println "Tasks: services"
    dependsOn gradle.includedBuild('P1').task(':run')
    dependsOn gradle.includedBuild('P2).task(':run')
    dependsOn gradle.includedBuild('P3).task(':run')
}
rootProject.name = 'services'
includeBuild 'P1'
includeBuild 'P2'
includeBuild 'P3'
apply plugin: 'war'
defaultTasks 'run'

task run {
   println "Tasks: cluster"
  buildDir = new File(rootProject.projectDir, "gradleBuild/" + project.name)
}

现在,如果我运行'composite-project'的构建,所有的项目都配置好了,但是没有创建WAR文件和JAR文件。只有在为该项目运行build时才会创建war文件。如何完成这一任务?

共有1个答案

孟佑运
2023-03-14

我有一个类似的案子,就这样破案了。

首先为每个项目定义buildall任务:

task buildAll(type: GradleBuild) {
    tasks = [ 'build' ]
}

然后为复合项目定义根buildall任务:

task buildAll {
    dependsOn gradle.includedBuilds*.task(':buildAll')
}
  • 定义复合生成仅用于生成所有子项目
  • 取决于包含生成中的任务

还有一个GitHub上的例子,我专门为这个例子准备的。

 类似资料:
  • 我有多个java项目。这些项目正在使用Gradle创建jar、war和ear文件。在每个项目中,我都使用清单文件来维护元数据,如版本、日期-时间...为此,我在每个build.gradle文件中都包含了清单文件创建逻辑。 但在Gradle中有一个特性调用SharedManifest。我在主项目build.gradle脚本中定义了以下两个任务。但是在每个jar和war文件中都有gradle创建的默认

  • 问题内容: 我是Maven新手,因此,如果这很琐碎,我深表歉意。基本上,我正在开发一个Web应用程序,并且正在使用Maven来管理项目。我在pom.xml中拥有该文件,以便在运行时,它会吐出一个war文件以部署在Web服务器上。 现在,作为此应用程序的一部分,我们使用的是战争时交付给我们的第三方库,该库分别部署在Web服务器上。这场战争包括我们编写的一些自定义集成功能。对于持久性逻辑,我最初只是直

  • 如何从命令行创建Java Gradle项目? 它应该创建标准的maven文件夹布局,如下图所示。 更新: 那么有办法在一个命令中完成吗?

  • 首先,打开Android Studio并选择Create new Project,然后它会让你输入一个名字,你可以任意取一个名字,比如:Weather App。然后你需要输入公司域名。如果你不会真正发布这个app,这个字段就不是特别重要了,但是如果你有的话可以使用自己的域名。然后任意选择一个目录作为这个项目的保存地址。 下一步,它会让你选择最小的API版本。我们选择API 15,因为我们有一个库需

  • 第 1 步,创建项目 要创建一个新项目,可以依次点击菜单 【File】→【New...】→【Projects】,你可以创建下列几种项目类型: Qt4 Console Application – 控制台应用程序 Qt4 Gui Application – GUI 应用程序(主要是含有界面布局的类型) C++ Library – C++库 这里我们创建一个基于 Qt4 Gui Application

  • 我已经使用Gradle有一段时间了,但从未深入研究过它的许多特性和功能,但前几天我决定将Java项目分成两个模块,以便于测试和维护。完成后,我开始阅读创作多项目和一个新的Gradle概念,称为复合构建。然后,我花了一天的大部分时间尝试将这些知识应用于(我认为我理解的)项目模块化。可以放心地假设我没有成功,现在我在这里寻求帮助来理解这些概念及其应用。 假设我们有以下目录结构: 这些是根目录中的项目: