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