2015-09-04 82 views
1

我有一個maven項目,在其中使用maven exec插件執行windows .bat文件。問題在於,即使蝙蝠執行失敗(即退出代碼爲-1),項目的構建也是SUCCESS。Maven exec插件構建成功,即使可執行文件在Windows上失敗

這是我定義的插件:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.4.0</version> 
    <executions> 
     <execution> 
      <phase>compile</phase> 
      <goals> 
       <goal>exec</goal> 
      </goals> 
      <configuration> 
       <executable>run.bat</executable> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

請注意,如果我執行它在Unix如預期一樣的行爲(即執行sh文件,並生成失敗)。

回答

1

noahlz answer的問題Launching a windows batch script using Maven exec plugin ...

的Windows批處理文件是不可執行的。它們是由cmd可執行文件運行的腳本。

...簡短版本是:這不是「Maven」的問題,這是執行exec()命令的依賴於平臺性質的問題。

如果傳遞給CMD的調用者,即Maven的Exec插件在run.bat%ERRORLEVEL%這是設置在執行CMD而不是命令。退出run.batEXIT %ERRORLEVEL%明確應該做的伎倆。

+0

Gerold Broser,感謝您指向noahlz的答案(實際上我已經找到它)不幸的是,用%ERRORLEVEL%退出並沒有幫助。所以我遵循noahlz'建議將.bat腳本解構爲其實際命令並直接從exec插件啓動它。 – vadim

相關問題