Gradle:从子项目复制application.properties文件

问题描述 投票:2回答:1

TL; DR创建FatJar,但将`application.properties``文件从子项目复制到构建输出文件夹(其中任何一个)。

大家好,

我有一个gradle项目,它不包含父项目中的源代码,但有子项目。其中一个子项目有一个application.properties文件,我希望它出现在我的构建文件夹中。应用程序的结构如下所示。

ParentProject
|
|-datamodel(Sub Project)
|   |
|   |-build.gradle
|-datadb(Sub Project)
|   |
|   |-build.gradle
|-dataservices(Sub Project)
|   |
|   |-src
|   |   |
|   |   |-main
|   |       |
|   |       |-resources
|               |
|               |-application.properties(File I need)
|   |-build.gradle      
|
|-build.gradle

我想拥有它,以便在构建ParentProject时,构建目录看起来像这样。

build
  |
  |-libs
  |   |
  |   |-outputted.jar
  |
  |-resources
      |
      |-application.properties

截至目前,我正在构建我认为称为FatJar的构建脚本输出。我不确定这是否会产生问题。

jar {
   ...
   from {
       (configurations.runtime).collect {
        it.isDirectory() ? it : zipTree(it)
       }
   }
   ...
}

我试过的:

一切。我在ParentProject构建文件中尝试了整个自定义任务路由

task copyStuff (dependsOn : 'subproject:build'){... 

task copyStuff and then copyStuff.dependsOn...

task copyStuff..{
   doLast {

无论如何,我从来没有把它复制过来,整个晚上都是失败的瀑布。

任何帮助是极大的赞赏。

java gradle build task
1个回答
1
投票

只需使用CopyGradle任务,那取决于Jar任务

task customBuild(type: Copy, dependsOn: [jar]) {
    from "dataservices/src/main/resources/"
    into "build/resources"
    include "application.properties"
}
© www.soinside.com 2019 - 2024. All rights reserved.