提问者:小点点

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


太长别读Create a FatJar,而是把application.properties文件从子项目复制到build输出文件夹(任意一个)。

大家好,

我有一个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

我想拥有它,这样当我构建家长项目时,构建目录将如下所示。

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

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

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

我尝试过的:

一切。我已经尝试了家长项目构建文件中的整个自定义任务路线

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

task copyStuff and then copyStuff.dependsOn...

task copyStuff..{
   doLast {

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

任何帮助都非常感谢。


共1个答案

匿名用户

只需使用Gradle复制任务,这取决于Jar任务

task customBuild(type: Copy, dependsOn: [jar]) {
    from "dataservices/src/main/resources/"
    into "build/resources"
    include "application.properties"
}