我有一个nodejs
应用程序,目录结构设置如下:
.
├── 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 :(得分:0)
如果service
和api
都是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
}
答案 1 :(得分: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'
}