2014-09-23 50 views
1

部署我有以下命令我通过常规执行:找不到命令错误时执行行家通过常规

def mavenCommand  = "/opt/apache-maven-3.2.2/bin/mvn"; 
def mavenUrl   = "-Durl=${nexusUrl}"; 
def mavenRepoId   = "-DrepositoryId=${nexusRepo}"; 
def mavenGroupId  = "-DgroupId=${groupId}"; 
def mavenArtefactId = "-DartifactId=${artefactName}"; 
def mavenVersion = "-Dversion=${artefactVersion}"; 
def mavenFile  = "-Dfile=${fileLocation}"; 
def mavenPackaging = "-Dpackaging=${artefactExtension}"; 


uploadToNexus("${mavenCommand} deploy:deploy-file ${mavenUrl} ${mavenRepoId} ${mavenGroupId} ${mavenArtefactId} ${mavenVersion} ${mavenFile} ${mavenPackaging}"); 

public String uploadToNexus(command){ 
    def uploadToNexusProc = new ProcessBuilder("/bin/sh", "-c","${command}").redirectErrorStream(true).start(); 
    uploadToNexusProc.waitFor(); 
    println uploadToNexusProc.text; 
    return uploadToNexusProc.exitValue(); 
} 

尽管在这种情况下它上传到成功的关系,看来最后一个参数总是少不了导致在:

-Dpackaging=zip : command not found 

我明白,这是一个shell错误,并出于某种原因${mavenPackaging}扩展到新的生产线。 有人可以帮我理解这个问题的原因吗?谢谢。

编辑1

$ {mavenPackaging“}是在当我格式化#2码我出错了,这是在我的代码设置正确。现在更新。

EDIT 2

如果我是这样做:

println "${mavenCommand} deploy:deploy-file ${mavenUrl} ${mavenRepoId} ${mavenGroupId} ${mavenArtefactId} ${mavenVersion} ${mavenFile} ${mavenPackaging}"; 

我得到以下输出(其中突出的问题):

/opt/apache-maven-3.2.2/bin/mvn deploy:deploy-file -Durl=http://server/content/repositories/releases -DrepositoryId=nexus -DgroupId=bogus.fake.fakeagain -DartifactId=api -Dversion=1.4.5 -Dfile=/opt/atlassian/jira/temp/api-1.4.5.zip 
-Dpackaging=zip 
+0

我想你想的'$引号{mavenPackaging“} '在括号外,就像'$ {mavenPackaging}“''在uploadToNexus行末尾一样。 – zerodiff 2014-09-23 13:14:35

+0

是否有一个原因可以将这里的壳带入等式中?你有没有试过'新的ProcessBuilder(mavenCommand,mavenUrl,mavenRepoId,mavenGroupId,mavenArtefactId,mavenVersion,mavenFile,mavenPackaging)...' – cfrick 2014-09-23 13:27:39

+0

哦,你可以检查,如果你的'fileLocation'在换行符结束? – cfrick 2014-09-23 13:28:40

回答

0

尝试改变下面一行:

uploadToNexus("${mavenCommand} deploy:deploy-file ${mavenUrl} ${mavenRepoId} ${mavenGroupId} ${mavenArtefactId} ${mavenVersion} ${mavenFile} ${mavenPackaging"}) 

uploadToNexus("${mavenCommand} deploy:deploy-file ${mavenUrl} ${mavenRepoId} ${mavenGroupId} ${mavenArtefactId} ${mavenVersion} ${mavenFile} ${mavenPackaging}") 
+0

请参阅更新。 – kaizenCoder 2014-09-23 22:41:23

+0

我同意,分号在行尾是可选的 – 2014-09-23 22:43:06

相关问题