2016-07-15 281 views
0

我有一個bash腳本,我希望maven在編譯階段後運行,因爲腳本應該部署捆綁包。這裏是我想在我發佈模塊利用插件:exec-maven-plugin無法執行.sh腳本:權限被拒絕

<plugin> 
      <artifactId>exec-maven-plugin</artifactId> 
      <groupId>org.codehaus.mojo</groupId> 
      <executions> 
      <execution> 
       <id>deploy-bundles</id> 
       <phase>install</phase> 
       <goals> 
       <goal>exec</goal> 
       </goals> 
       <configuration> 
       <executable>${basedir}/deploy.sh</executable> 
       </configuration> 
      </execution> 
      </executions> 
     </plugin> 

我在正確道路deploy.sh,所以這驗證。現在,當我做mvn install我得到以下錯誤:

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.5.0:exec (deploy-bundles) on project module.release: Command execution failed. Cannot run program "/bla/bla/module.release/deploy.sh" (in directory "/bla/bla/module.release"): error=13, Permission denied -> [Help 1] 

首先,我認爲這是對的bash腳本我寫的。所以我把它改爲這樣一個簡單的bash腳本:

#!/bin/bash   
STR="Hello World!" 
echo $STR  

但是,我得到了同樣的錯誤。所以它不是關於代碼。我應該給予maven特殊權利嗎?應該使用sudo命令?

+1

該腳本必須具有執行權限。 exec-maven-plugin並不相關...你需要在linux'chmod + x deploy.sh'上設置執行屬性,你還需要將它添加到你的版本控制(git,subversion)... – khmarbaise

+0

我想要所有事情都要用簡單的'mvn install'命令完成,因爲用戶應該處理'chmod'等。有沒有辦法告訴maven來處理這個問題? –

+1

正如我所說的,您需要正確設置權限並將其正確地放入您的版本控制中......我不知道您的用戶應該是什麼意思? – khmarbaise

回答

2

您需要爲腳本設置適當的權限,並將權限也放入版本控制git(.gitattributes)或Subversion(svn:executable屬性)中。

+0

謝謝。是[這](http://stackoverflow.com/a/10783833/6533075)正確的方式來做它的Git? –