2016-03-31 6 views
0

Ich bin neu in Maven. ich Maven-Projekt erstellt und installiert es (Build erfolgreich), aber ich kann nicht JAR-Datei von Eingabeaufforderung ausführen, heißt esJAR-Datei kann nicht ausgeführt werden (Maven Project)

Error: Unable to access jarfile

Ich glaube, ich Fehler in der POM-Datei

<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>ru.nick.kru</groupId> 
    <artifactId>ParagonCase</artifactId> 
    <version>1.1</version> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>2.4</version> 
       <configuration> 
        <archive> 
         <manifest> 
          <addClasspath>true</addClasspath> 
          <mainClass>Main</mainClass> 
          <packageName>ru.nick.kru</packageName> 
          <addClasspath>true</addClasspath> 
          <classpathPrefix>lib/</classpathPrefix> 
         </manifest> 
        </archive> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.8.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-io</artifactId> 
      <version>1.3.2</version> 
     </dependency> 

    </dependencies> 
</project> 
+1

das ist zu vage. Ist Ihre Manifestdatei korrekt? Gibt es eine Hauptmethode zum Starten? ist Java konfiguriert? ... – Stultuske

+1

außerdem, welchen Befehl verwenden Sie, um das Glas zu laufen? Du brauchst wahrscheinlich ein dickes Glas, ansonsten würden Abhängigkeiten nicht enthalten sein und dein Main würde wahrscheinlich scheitern (daher suche nach dem Maven Shade Plugin). Last but not least sollte die Junit-Abhängigkeit im Testumfang liegen. –

+0

Ich denke, Manifest ist korrekt. Soll ich Java in Pom-Datei konfigurieren? – Nick

Antwort

0

Gebäude haben eine ausführbare Jar-Datei mit Maven kann knifflig sein, aber es gibt einen Weg, es zu tun! Es sieht so aus, als ob Sie auf dem richtigen Weg sind, aber "ParagonCase" in der Eigenschaft "packageName" des Plugins fehlt (wenn Ihre Main-Funktion ru.nick.kru.ParagonCase.Main ist, dann sollte Ihr Paketname ru sein. nick.kru.ParagonCase).

Ich fand es auch nützlich, das maven shade plugin zu verwenden, das alle notwendigen Abhängigkeiten innerhalb des Jars bündelt (d. H. Sie brauchen nicht all diese Abhängigkeiten als separate Jars in Ihrem Klassenpfad, wenn Sie das Jar ausführen).

In Ihrem POM können Sie die folgende Build-Plugin hinzufügen:

<build> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <version>2.3</version> 
    <executions> 
     <!-- Run shade goal on package phase --> 
     <execution> 
     <phase>package</phase> 
     <goals> 
      <goal>shade</goal> 
     </goals> 
     <configuration> 
      <transformers> 
      <!-- add Main-Class to manifest file --> 
      <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
       <mainClass>ru.nick.kru.ParagonCase.Main</mainClass> 
      </transformer> 
      </transformers> 
     </configuration> 
     </execution> 
    </executions> 
</plugin> 
</build> 

Um das Glas zu laufen (nachdem es mit mvn package erstellt wird). Starten Sie es mit Java:

+0

Thx, ich habe gerade vergessen, .jar in jarFile name zu verwenden – Nick