我有一个Gradle任务,应该在Windows操作系统上创建Websphere配置文件
task createProfile(type:Exec) {
def commandToExecute = new StringBuffer()
def profile = 'AppSrv02'
def wasHome = 'C:/IBM new/WebSphere/AppServer'
def str = new LinkedList <String> ();
str.add('cmd')
str.add('/c')
str.add(wasHome + '/bin/manageprofiles.bat')
str.add('-create')
str.add('-profileName')
str.add(profile)
//str.add('-templatePath')
//str.add(wasHome + '/profileTemplates/default')
println (str)
commandLine str.toArray()
}
如果我取消注释掉的行,问题就出现了,任务失败并告诉我:"C:/IBM"不是有效的批处理文件。如果我把profileTemplates放在不包含空格的文件夹中,一切都正常了。但模板应该位于wasHome中(有时wasHome也有空格)。目前我还不知道为什么添加带有空格的templates键和值会影响Gradle以这种方式尝试启动"C:/IBM",而不是指定的'C:/IBM new/WebSphere/AppServer/bin/manageprofiles.bat'。可能问题在java.lang.ProcessBuilder内部。我尝试通过添加"/""来引用路径,但是什么都不起作用((((这并不奇怪,因为ProcessBuilder会根据需要自行引用。所以,我想问问是否有人遇到过类似的问题,并能推荐如何解决这个问题?提前感谢您的帮助。
--autoprefix="last 2 versions"
,双引号之间的空格总是导致问题。 - Michael R