2016-08-10 45 views
0

包含在tar文件从父目录的文件我有一个nodejs应用程序,目录结构设置如下:使用gradle这个

. 
├── api 
│   └── swagger 
│    └── swagger.yaml 
└── service 
    ├── app.js 
    ├── build.gradle 
    ├── lib 
    │   └── utils.js 
    └── package.json 

这里是build.gradle一个片段,它试图创建所需文件的tar ..

apply plugin: 'maven-publish' 

def jsLib = 'lib/' 
def packageJson = 'package.json' 
def swagger = '../api/swagger/swagger.yaml' 
def appJs = 'app.js' 

task pack(type: Tar) { 
    from(project.projectDir) 
    include(packageJson) 
    include(swagger) 
    include(jsLib) 
    include(appJs) 
    baseName rootProject.name + '.' + project.name 
    version rootProject.version 
    compression = Compression.GZIP 
    extension = 'tgz' 
} 

这部分的工作,所产生的tar包含了除swagger.yaml一切是在父目录service/

该文件如何包含?

回答

0
task pack(type: Tar) { 
    from(project.projectDir) 
    include(packageJson) 
    include(jsLib) 
    include(npmrc) 
    include(newrelic) 
    include(appJs) 
    include(config) 
    from (project.parent.projectDir) 
    include('api/swagger/swagger.yaml') 
    baseName rootProject.name + '.' + project.name 
    version rootProject.version 
    compression = Compression.GZIP 
    extension = 'tgz' 
} 
0

如果同时serviceapi是:1)父项目的子项目或2)更为复杂的子项目层次结构的一部分,你可以使用:

1.) from(project.parent.projectDir) { 
    include **/*.yaml 
} 

2.) from(project.rootProject.projectDir) { 
    include **/*.yaml 
} 

如果不是这样,你必须明确地指定目录:

def apiDir = new File(project.parent.projectDir.parentFile, "api") 
from(apiDir) { 
    include **/*.yaml 
}