PowerShell拼接javac和javadoc调用

在不能使用maven的情况下,使用PowerShell做生成脚本便于跨平台一次写完到处运行,比.sh+.cmd双实现要方便。PowerShell本身是开源的,也算满足自主可控限制。
指定class目标JRE版本需要的javac参数项(PowerShell Core for Linux上失效,不过一般工业软件又是国产Linux系统上带的都是JDK 1.8)

$javacTargetVerb = if ((Get-Command java).Version.Major -gt 8) { "--release", "8" } else { "-target", "8" }

拼接-cp,以几个commons.apache.org包为例

$dirsep = if ($IsLinux) { ":" } else { ";" }
$dependedJars = "../lib/commons-io-2.6.jar", "../lib/commons-math3-3.6.1.jar"
$dependedJars = [String]::new(($dependedJars | ForEach-Object { ($dirsep + """$_""").ToCharArray() }))
$dependedJars = "-cp", $dependedJars.Substring(1) # 或者"bin"+$dependedJars之类的

在src代码目录下执行javac

javac $javacTargetVerb $dependedJars `
    -Xlint:deprecation -Xlint:unchecked -encoding utf-8 -d ../bin `
    (Get-ChildItem -Recurse -Include *.java)

在src代码目录下执行javadoc

javadoc -quiet $dependedJars `
    -encoding utf-8 -docencoding utf-8 -public -d ../doc `
    (Get-ChildItem -Recurse -Include *.java)
上一篇:ASP.NET Core的配置(4):多样性的配置来源[中篇]


下一篇:丰趣海淘:跨境电商平台的前端性能优化实践