2016-07-15 11 views
0

Ich habe ein Bash-Skript, das ich nach der Kompilierung maven laufen soll, da das Skript Bundles bereitstellen soll. Hier ist das Plugin ich in meinem Freigabemodul zu verwenden, versuche:Exec-Maven-Plugin kann nicht ausgeführt werden. SH-Skript: Berechtigung verweigert

<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> 

Ich habe die deploy.sh in den richtigen Pfad, so dass überprüft wird. Nun, wenn ich mvn install bekomme ich folgende Fehlermeldung:

[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] 

Zuerst dachte ich, es über die Bash-Skript war ich geschrieben habe. Also habe ich es in ein einfaches Bash-Skript wie folgt geändert:

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

jedoch habe ich den gleichen Fehler. Es geht also nicht um den Code. Sollte ich maven Sonderrechte geben? Sollte der sudo Befehl verwenden?

+1

Das Skript muss die Berechtigung zur Ausführung haben. exec-maven-plugin ist nicht darauf angewiesen ... Sie müssen das Ausführungsattribut auf linux 'chmod + x deploy.sh' setzen, außerdem müssen Sie das zu Ihrer Versionskontrolle hinzufügen (git, subversion) ... – khmarbaise

+0

Ich möchte alles mit dem einfachen Befehl 'mvn install' zu tun, da der Benutzer sich mit' chmod' oder ähnlichem beschäftigen sollte. Gibt es eine Möglichkeit, Maven zu sagen, damit umzugehen? –

+1

Wie ich schon sagte, müssen Sie die Berechtigung korrekt setzen und diese korrekt in Ihre Versionskontrolle einfügen ... Ich weiß nicht, was Sie unter 'Benutzer sollte sein..' verstehen. – khmarbaise

Antwort

2

Sie müssen die entsprechenden Berechtigungen für das Skript festlegen und die Berechtigung auch in Ihre Versionskontrolle entweder git (.gitattributes) oder in Subversion (svn: executable property) setzen.

+0

Danke. Ist [dies] (http://stackoverflow.com/a/10783833/6533075) der richtige Weg, es für Git zu tun? –