gpt4 book ai didi

gradle - gradle如何仅将javascript文件添加到war文件中的目录

转载 作者:行者123 更新时间:2023-12-03 05:59:20 25 4
gpt4 key购买 nike

我正在尝试创建一个使用angular2的Web应用程序。 build.gradle的负责编译 typescript 并将其添加到 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
}
}

这会将类型脚本编译器的输出添加到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')将in放在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())
}

关于gradle - gradle如何仅将javascript文件添加到war文件中的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42745018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com