gradle 如何仅将 javascript 文件添加到 war 文件中的目录
gradle how to add only javascript files to a directory in the war file
我正在尝试创建一个使用 angular2 的 Web 应用程序。 build.gradle中负责编译打字稿并添加到war中的部分如下:
public class TsCompileTask extends DefaultTask {
File projectDir;
@OutputDirectory
File outputDir;
@TaskAction
void compile() {
println "compiling TypeScript files..."
project.exec {
executable = "tsc"
args "-p"
args projectDir
args "--outDir"
args outputDir.toString()
}
}
}
public class npmInstallTask extends DefaultTask {
File projectDir
@TaskAction
void compile(){
println "installing npm packages"
project.exec {
workingDir = projectDir.path
executable = "npm"
args "install"
}
}
}
task tsCompile(type:TsCompileTask) {
projectDir = file('./src/main/typescript')
outputDir = file("$buildDir/ts")
}
war{
into("js"){
from tsCompile.outputs
}
}
这会将 typescript 编译器的输出添加到 war 存档中的 js 目录,但不会添加依赖项,这些依赖项位于 node_modules.
目录中
我尝试使用以下 gradle 片段仅将 typescript 目录中的 JavaScript 文件添加到 war:
war{
into("js"){
from fileTree(dir: './src/main/typescrypt/').matching{
include('**/*.js)
}.files
}
}
但是,这包括目录下的所有文件。
我已经尝试了上述的几种变体(例如,使用 fileTree('./src/main/typescript').include('**/*.js')
将 into 置于 from 的闭包中,而不是相反)。如何才能将只.js结尾的文件添加到war文件的js目录下?
from
方法接受字符串,而不是文件对象。
war{
into("js"){
from fileTree(dir: './src/main/typescrypt/').matching{
include('**/*.js)
}.files.stream().map{
File->file.toString()
}.collect(Collectors.toSet())
}
我正在尝试创建一个使用 angular2 的 Web 应用程序。 build.gradle中负责编译打字稿并添加到war中的部分如下:
public class TsCompileTask extends DefaultTask {
File projectDir;
@OutputDirectory
File outputDir;
@TaskAction
void compile() {
println "compiling TypeScript files..."
project.exec {
executable = "tsc"
args "-p"
args projectDir
args "--outDir"
args outputDir.toString()
}
}
}
public class npmInstallTask extends DefaultTask {
File projectDir
@TaskAction
void compile(){
println "installing npm packages"
project.exec {
workingDir = projectDir.path
executable = "npm"
args "install"
}
}
}
task tsCompile(type:TsCompileTask) {
projectDir = file('./src/main/typescript')
outputDir = file("$buildDir/ts")
}
war{
into("js"){
from tsCompile.outputs
}
}
这会将 typescript 编译器的输出添加到 war 存档中的 js 目录,但不会添加依赖项,这些依赖项位于 node_modules.
目录中我尝试使用以下 gradle 片段仅将 typescript 目录中的 JavaScript 文件添加到 war:
war{
into("js"){
from fileTree(dir: './src/main/typescrypt/').matching{
include('**/*.js)
}.files
}
}
但是,这包括目录下的所有文件。
我已经尝试了上述的几种变体(例如,使用 fileTree('./src/main/typescript').include('**/*.js')
将 into 置于 from 的闭包中,而不是相反)。如何才能将只.js结尾的文件添加到war文件的js目录下?
from
方法接受字符串,而不是文件对象。
war{
into("js"){
from fileTree(dir: './src/main/typescrypt/').matching{
include('**/*.js)
}.files.stream().map{
File->file.toString()
}.collect(Collectors.toSet())
}