Wie zum ausführen von Maven für ein Java-Main-Methode Aufrufen
Ich bin ganz neu mit der Verwendung von maven-Optionen - also sorry für die einfache Frage.
Ich habe darum gebeten, vorab über die Ausführung von java-code (call-Funktion) und bekommen eine klare Antwort.. aber
es scheint etwas falsch in dieser config. Oder ist es weil ich bin nicht mit einem richtigen Parameter für den Start?
<build>
<plugins>
....
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>org.package.Separator.Main</mainClass>
</configuration>
</plugin>
</plugins>
</build>
Ich bin mit meinem POM mit $: mvn exec:exec
Und ich bekomme diesen Fehler:
One or more required plugin parameters are invalid/missing for 'exec:exec'
[0] Inside the definition for plugin 'exec-maven-plugin' specify the following:
<configuration>
...
<executable>VALUE</executable>
</configuration>
-OR-
on the command line, specify: '-Dexec.executable=VALUE'
Habe ich etwas gelesen über diesen Fehler und versucht, ursprünglich zu bewegen, die Konfiguration zu den Hinrichtungen
zweitens - classpath angeben, aber nichts passiert((
Meine Main-Funktion in Separator.java Klasse ist wie folgt:
static public void main(String[] arg) throws ParserConfigurationException, TransformerException, SAXException, IOException {
//and here I call for example
System.out.println("LOL");
}
Einige Leute benutzen: Paket vor dem Tore (für frühere Versionen), aber es löst nicht mein Problem.
Muss ich umschreiben, dass meine POM:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>org.package.Separator</mainClass>
</configuration>
</plugin>
Aber jetzt Klasse nicht gefunden Ausnahme bei org.Paket.Separator
Ich bin mit mvn package für kompilieren
- Sie haben also versucht, sowohl die Vorschläge ausgedruckt, die in der Fehlermeldung? Können Sie uns zeigen, genau den Befehl, den Sie eingegeben, wenn Sie versuchen, die zweite
-Dexec.executable=VALUE
option, und was es für Fehler waren? - Ich habe keine Ahnung, was ich schreiben muss als WERT( ich habe versucht, zu übergeben Separator.class bekam aber eine Fehlermeldung. Ich habe keine .jar an dieser Stelle - dies ist vor Projekt-Zusammenstellung
- Sie müssen diesen code verfügbar sein, wenn Sie den Befehl ausführen. Funktioniert der code live in einem separaten (jar-Datei), oder ist es Teil Ihres Projekts? wenn der code ausgeführt, als Teil der plugin-tatsächlich gebaut wird, durch das maven-Projekt, dann glaube ich nicht, es wird funktionieren. Sie müssen, um es zu bauen in einem separaten pom und davon abhängen, ansonsten denke ich nicht, dass die class-Datei verfügbar ist.
- Ich brauche diesen code, wenn ich die Vorbereitung Paket. Ich habe <phase>prepare-Paket</phase> vor <Ziele> und so konnte ich es mit mvn package butnow ich bin erste Klasse nicht gefunden Ausnahme
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eigentlich sollten Sie laufen
Siehe Beispiel beschrieben auf exec-maven-plugin:java-Nutzung.
Finnaly Ihre plugin-Beschreibung sollte wie folgt sein:
Hinweis! Dieses plugin funktioniert nur auf vollen Namen Erklärung in der Konsole oder über phase Ausführung:
Ersten Versuch der Umbenennung des classpath Ihres Projekts
org.package.Separator.Main
"Paket" verwendet wird, in java-namespace-syntax, also verwenden Sie diese nicht in Ihre Pakete, classpath.
Und vielleicht sollten Sie versuchen, hinzufügen von phase zu Ihrem Ziel wie diese :
und ausführen :
mvn compile run
exec:java
nicht automatisch kompilieren Sie Ihren code, den Sie brauchen, um zuerst tun.mvn compile run
Ich hatte das gleiche problem. Mein problem war mein code war NICHT in src/main/java. Ihre Klasse mit main-Methode muss unter src/main/java