2014-10-29 40 views
0

我面临的一些问题,在Windows上设置环境命令提示符:摇篮/常规设置环境变量

我在做什么:

  1. 设置环境(创建环境变量)
  2. 运行配置环境

蝙蝠后,我尝试两种不同的方法:

  1. 创建上的build.gradle两个不同的任务:
task setupenvironment(type:Exec) 
{ 
    def DirLocation = 'C:/../path/' 
    workingDir = new File(DirLocation) 
    commandLine DirLocation + 'environment.cmd' 
     args = [ '-x',  location, 
        '-y',   WorkspaceLocation, 
        '-z',   'generated' 
      ] 
} 
task createwithpackage (type:Exec, dependsOn: setupenvironment) 
{ 
    def DirLocation = 'C:/../path/' 
    def WorkspaceLocation = 'C:/../Workspace' 
    def location = 'C:/../location' 
    workingDir = new File(DirLocation) 
    commandLine DirLocation + 'package.bat' 
     args = [ '-x',  location, 
        '-y',   WorkspaceLocation, 
        '-z',   'generated' 
      ] 
} 
//console: gradle createwithpackage --stacktrace 
ERROR -> Process 'command 'C:/../package.bat'' finished with non-zero exit value 255 
  • 上的build.gradle创建任务来调用.BAT具有两种工艺
  • task createall(type:Exec) { 
    { 
        def DirLocation = 'C:/../' 
        workingDir = new File(DirLocation) 
        commandLine DirLocation + 'deploy.bat' 
    } 
    task createwithpackage(type:Exec) { 
    { 
        def DirLocation = 'C:/../path/' 
        def WorkspaceLocation = 'C:/../Workspace' 
        workingDir = new File(DirLocation) 
        commandLine DirLocation + 'package.bat' 
         args = [ '-x',  location, 
            '-y',   WorkspaceLocation, 
            '-z',   'generated' 
          ] 
    } 
    

    DEPLOY.BAT

    CALL "C:\..\ environment.cmd" 
    CALL gradle createwithpackage 
    
    //console: gradle createall –stacktrace 
    Exception throwed: createwithpackage: Could not find or load main class com.package.class 
    

    但是,如果我在上面执行命令的控制台内手动,一切工作正常。

    我做错了什么?

    --edit

    对不起,我回答这么晚了,我之前试过你的链接上的建议。然而,我一直有这个错误,我调试和使用stacktrace查找问题,最后我得到它的工作,但只有一项任务

    这项工作只适用于直接任务(没有设置任务之前的环境变量):

    task createwithpackage (type:Exec) 
    { 
        def DirLocation = 'C:/../path/' 
        def WorkspaceLocation = 'C:/../Workspace' 
        def location = 'C:/../location' 
        workingDir = new File(DirLocation) 
        commandLine DirLocation + 'package' 
         args = [ '-x',  location, 
            '-y',   WorkspaceLocation, 
            '-z',   'generated' 
          ] 
    } 
    

    然而接下来的做法,开始很好,但在最后,当它试图保存在磁盘上,抛出厚望“拒绝访问”,所以我猜测它必须是一些与gradle这个特权我不知道如何管理(我以管理员身份运行cmd,具有所有权限):

    task createwithpackage (type:Exec) 
    { 
        def DirLocation = 'C:/../path/' 
        def WorkspaceLocation = 'C:/../Workspace' 
        def location = 'C:/../location' 
        workingDir = new File(DirLocation) 
        commandLine 'cmd', '/c', 'package', '-x', location '-y', WorkspaceLocation, '-z', 'generated' 
    } 
    

    // gradle这个createwithpackage --debug

    09:27:57.640 [INFO] [org.gradle.process.internal.DefaultExecHandle] Successfully 
    started process 'command 'cmd'' 
    09:29:06.193 [QUIET] [system.out] BIP0963E Error saving file in createwithpackage. 
    09:29:06.203 [QUIET] [system.out] 
    09:29:06.213 [QUIET] [system.out] The file "C:\path..\main 
    /" could not be saved to disk. 
    09:29:06.223 [QUIET] [system.out] The reason given was: 
    09:29:06.223 [QUIET] [system.out] C:\path..\main (Access i 
    s denied.) 
    09:29:06.233 [QUIET] [system.out] 
    09:29:06.233 [QUIET] [system.out] 
    09:29:09.483 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing st 
    ate to: FAILED 
    09:29:09.503 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'co 
    mmand 'cmd'' finished with exit value 1 (state: FAILED) 
    09:29:09.503 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceT 
    askExecuter  
    

    反正是有让gradle这个拥有完全权限?任何进一步的帮助将欣赏

    谢谢

    回答

    0

    ,你必须执行它作为cmd in the Exec task:进一步的信息

    commandLine 'cmd', '/c', DirLocation + 'deploy.bat' 
    
    +0

    我尝试过这种方法,我编辑我的问题 – Exec21 2014-10-30 21:09:16