2017-12-21 1 views
0

Ich habe das folgende Ordner-Layout (gebaut Plugin Maven bereitstellen):wie Build läuft Maven mit

projectrelease 
    ├── README.md 
    └── com 
     └── example 
      └── demo 
       ├── 0.0.1-SNAPSHOT 
       │   ├── demo-0.0.1-20171220.161043-1.jar 
       │   ├── demo-0.0.1-20171220.161043-1.jar.md5 
       │   ├── demo-0.0.1-20171220.161043-1.jar.sha1 
       │   ├── demo-0.0.1-20171220.161043-1.pom 
       │   ├── demo-0.0.1-20171220.161043-1.pom.md5 
       │   ├── demo-0.0.1-20171220.161043-1.pom.sha1 
       │   ├── maven-metadata.xml 
       │   ├── maven-metadata.xml.md5 
       │   └── maven-metadata.xml.sha1 
       ├── maven-metadata.xml 
       ├── maven-metadata.xml.md5 
       └── maven-metadata.xml.sha1 

wie kann ich es mit Maven cmd laufen?

das Projekt wurde mit Maven ausführbaren jar-Plugin gebaut, und es kann ausgeführt werden:

./projectrelease/com/example/demo/0.0.1-SNAPSHOT/demo-0.0.1-20171220.161043-1.jar 

oder

java -jar projectrelease/com/example/demo/0.0.1-SNAPSHOT/demo-0.0.1-20171220.161043-1.jar 

Ich suche eine mvn cmd aus dem Stammordner, so dass es laufen wird das gesamte Projekt laufen

+0

Zuerst, wenn dies von Maven deploy erstellt wurde Plugin, das Projekt selbst ist falsch konfiguriert.Wenn Sie dies in einem anderen Projekt verwenden möchten, müssen Sie es als Abhängigkeit definieren (mit den Koordinaten groupId, artifactId, version) ... – khmarbaise

+1

Mögliche Duplikate von [Wie kann ich eine ausführbare JAR mit Abhängigkeiten mit Maven erstellen?] (Https : //stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven) – OcelotcR

+0

Frage wurde bearbeitet – shahaf

Antwort

1

Ich suche eine mvn cmd aus dem Stammordner laufen, so dass es das gesamte Projekt

läuft

Ich glaube nicht, diese Dateien sind ausführbar „per se“, wie sie sind, ohne ein extra Werkzeug oder Maven Plugin. Außerdem bin ich mir nicht wirklich sicher, was Sie unter "das Projekt ausführen" verstehen. Meinst du das kompilieren? Oder führen Sie es ähnlich wie eine normale Java-Ausführung aus?

Was Sie dort haben, ist das Layout von erfüllten Artefakten, die in ein Maven Repository gehören.

Sowohl Artifact und Repository sind spezifische Maven Konzepte.

Die .pom und .xml Dateien, die .sha1 und .md5 Dateien sind alle von Maven verwendet Metadaten selbst Downloads des Artifact aus einem Repository zu steuern. Die .jar Datei ist das eigentliche Artefakt von Interesse.

Diese Dateien sollen in einem Repo installiert und dann von anderen Maven-Projekten verwendet werden, indem sie als Abhängigkeit in der pom.xml verwiesen werden.

Zum Beispiel:

<dependency> 
    <groupId>com.example.demo</groupId> 
    <artifactId>demo</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
</dependency> 

Die Dateien können in dem „lokalen Repository“ installiert werden, das Dateisystem basiert, und wird normalerweise bei ${user.home}/.m2/

gefunden Oder Sie können einen Repository-Server ausführen. Gemeinsamer Repository-Server enthält Nexus, Artifactory oder Archiva


Die andere Möglichkeit ist, dass die Haupt .jar Datei ausführbar ist. In diesem Fall würde laufen Sie nicht mit Maven, sondern als normale Java-Datei:

java -jar demo-0.0.1-20171220.161043-1.jar 

0

Ich denke, Sie können manuell Abhängigkeitsglas enthalten, oder Sie können Ihr Projekt mit Abhängigkeiten kompilieren, siehe this.