我有一個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
命令?
該腳本必須具有執行權限。 exec-maven-plugin並不相關...你需要在linux'chmod + x deploy.sh'上設置執行屬性,你還需要將它添加到你的版本控制(git,subversion)... – khmarbaise
我想要所有事情都要用簡單的'mvn install'命令完成,因爲用戶應該處理'chmod'等。有沒有辦法告訴maven來處理這個問題? –
正如我所說的,您需要正確設置權限並將其正確地放入您的版本控制中......我不知道您的用戶應該是什麼意思? – khmarbaise