2012-03-27 4 views
0

클라이언트 (silverlight로 작성)와 서버 (java로 작성)의 두 가지 구성 요소가있는 maven에 프로젝트를 통합하려고합니다. 서버 쪽은 완벽하게 maven과 호환되지만 maven을 사용하여 msbuild를 실행하는 데 문제가 있습니다. 다음과 같은 액세스가 거부되었습니다.maven에서 msbuild를 호출하는 중 오류가 발생했습니다.

내장 오류 : C : \ WINDOWS \ Microsoft.NET \ Framework \ Framework \ v4.0.3031 9 \ msbuild "("C : \ workspace \ something \ client ") : CreateProcess를 오류 = 5, 액세스가 거부되었습니다

기계 : 윈도우 XP 쉘 : 자식 강타하고 cmd를

의 pom.xml :

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
     <modelVersion>4.0.0</modelVersion> 
     <groupId>x</groupId> 
     <artifactId>client</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
     <packaging>pom</packaging> 
     <name>client</name> 
    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <configuration> 
       <executable>${msbuild.path}</executable> 
      </configuration> 
      <executions> 
       <execution> 
       <id>clean</id> 
       <phase>clean</phase> 
       <configuration> 
       <arguments> 
       <argument>/t:Clean</argument> 
       </arguments> 
      </configuration> 
      <goals> 
       <goal>exec</goal> 
      </goals> 
      </execution> 
      <execution> 
      <id>build</id> 
      <phase>compile</phase> 
      <configuration> 
       <arguments> 
       <argument>/t:some.sln</argument> 
       </arguments> 
      </configuration> 
       <goals> 
        <goal>exec</goal> 
       </goals> 
      </execution> 
      </executions> 
     </plugin> 
     </plugins> 
    </build> 
    </project> 

오류 :

 $ mvn compile -Dmsbuild.path=C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/msbu 
    ild -e 
    + Error stacktraces are turned on. 
    [INFO] Scanning for projects... 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] Building client 
    [INFO] task-segment: [compile] 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] [exec:exec {execution: build}] 
    [INFO] ------------------------------------------------------------------------ 
    [ERROR] BUILD ERROR 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] Command execution failed. 

    Embedded error: Cannot run program "C:\WINDOWS\Microsoft.NET\Framework\v4.0.3031 
    9\msbuild" (in directory "c:\workspace\something\client"): CreateProcess error=5, 
    Access is denied 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] Trace 
    org.apache.maven.lifecycle.LifecycleExecutionException: Command execution failed 
    . 
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa 
    ultLifecycleExecutor.java:719) 
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLi 
    fecycle(DefaultLifecycleExecutor.java:556) 
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau 
    ltLifecycleExecutor.java:535) 
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan 
    dleFailures(DefaultLifecycleExecutor.java:387) 
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen 
    ts(DefaultLifecycleExecutor.java:348) 
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi 
    fecycleExecutor.java:180) 
      at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 
      at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 
      at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 
      at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:6 
    0) 
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
    java:39) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
    sorImpl.java:25) 
      at java.lang.reflect.Method.invoke(Method.java:597) 
      at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
      at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
      at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 

      at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 
    Caused by: org.apache.maven.plugin.MojoExecutionException: Command execution fai 
    led. 
      at org.codehaus.mojo.exec.ExecMojo.execute(ExecMojo.java:363) 
      at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi 
    nManager.java:490) 
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa 
    ultLifecycleExecutor.java:694) 
      ... 17 more 
    Caused by: java.io.IOException: Cannot run program "C:\WINDOWS\Microsoft.NET\Fra 
    mework\v4.0.30319\msbuild" (in directory "c:\workspace\something\client"): Create 
    Process error=5, Access is denied 
      at java.lang.ProcessBuilder.start(ProcessBuilder.java:460) 
      at java.lang.Runtime.exec(Runtime.java:593) 
      at org.apache.commons.exec.launcher.Java13CommandLauncher.exec(Java13Com 
    mandLauncher.java:58) 
      at org.apache.commons.exec.DefaultExecutor.launch(DefaultExecutor.java:2 
    54) 
      at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecut 
    or.java:319) 
      at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java: 
    160) 
      at org.codehaus.mojo.exec.ExecMojo.executeCommandLine(ExecMojo.java:602) 

      at org.codehaus.mojo.exec.ExecMojo.execute(ExecMojo.java:348) 
      ... 19 more 
    Caused by: java.io.IOException: CreateProcess error=5, Access is denied 
      at java.lang.ProcessImpl.create(Native Method) 
      at java.lang.ProcessImpl.<init>(ProcessImpl.java:81) 
      at java.lang.ProcessImpl.start(ProcessImpl.java:30) 
      at java.lang.ProcessBuilder.start(ProcessBuilder.java:453) 
      ... 26 more 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] Total time: < 1 second 
    [INFO] Finished at: Tue Mar 27 10:33:58 CDT 2012 
    [INFO] Final Memory: 7M/494M 
    [INFO] ------------------------------------------------------------------------ 

누구나 받는다는/자바를 사용하거나 받는다는을 사용하는 Windows 프로세스/배치 파일을 실행 msbuild를 실행 성공을?

+0

msbuild를 경로에 넣고 긴 경로 이름을 사용하지 않는 것이 좋습니다. 그들은 항상 문제를 일으키는 것 같습니다 ... –

답변

1

Windows 7로 이동하면 작동합니다. 왜 XP에서 작동하지 않았는지 모르지만 그 문제는 저를 위해 해결됩니다.

2

아마도 ${msbuild.path} 속성이 C:\Windows\...\msbuild.exe이 아니라 C:\Windows\...\msbuild 인 폴더로 해석되기 때문일 수 있습니다.

+0

".exe"가 필요하지 않은 Command 창에서 테스트했지만 System.Diagnostics.Process.Start를 사용할 때 ".exe"가 필요했습니다. 감사. – leem

관련 문제