# Maven Runnable Jar



## Turing0001 (6. Apr 2021)

Hallo Leute,

ich habe heute angefangen mich mit Maven in Eclipse zu beschäftigen. Mein erstes Projektchen habe ich erstellt, ich benutze JUnit. Maven erstellt auch brav die entsprechende jar. Das Programm soll testweise nur einen JFrame öffnen. Als Java-App läuft das Programm natürlich auch, aber die entsprechende vom Maven erzeugte Jar-Datei macht- gar nichts. Ich habe es gemäß folgendem Rat auf stackoverflow versucht : Run as -> Maven Build bzw. Run as -> Maven install, hat aber beides nichts gebracht. Die jars werden zwar erstellt, sind aber nicht lauffähig. Sorry, falls das eine dumme Frage sein sollte, aber mehr haben meine Recherchen bisher nicht erbracht.


----------



## kneitzel (6. Apr 2021)

Dann zeige uns doch einfach einmal deine pom. Ohne genaue Details ist es nur ein Raten, aber vermutlich fehlt im Manifest die Main-Klasse.

Vermutlich fehlt dann etwas in der Art:

```
<build>
    <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>some.package.TestApp</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
```

Aber wenn wir weitere Details bekommen, dann kann man da ggf. mehr zu sagen.


----------



## Turing0001 (6. Apr 2021)

kneitzel hat gesagt.:


> Dann zeige uns doch einfach einmal deine pom. Ohne genaue Details ist es nur ein Raten, aber vermutlich fehlt im Manifest die Main-Klasse.
> 
> Vermutlich fehlt dann etwas in der Art:
> 
> ...


Hallo Kneitzel,
schön wieder von Dir zu hören. Hier die pom:


```
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.marcus</groupId>
  <artifactId>maven-demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
  <properties>
    <maven.compiler.source>15</maven.compiler.source>
    <maven.compiler.target>15</maven.compiler.target>
</properties>

  <dependencies>
  <!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <scope>test</scope>
</dependency>
  </dependencies>
</project>
```


----------



## kneitzel (6. Apr 2021)

Danke für die POM. Da fehlt dann tatsächlich ein Block, so wie ich ihn gezeigt habe.

Der build Block gehört in den project Block. build und plugins habe ich nur am Anfang des Blocks angedeutet - da Du entsprechende noch nicht hast, musst Du diese Blöcke natürlich schließen.

Also einfach nach dem dependencies Block einfügen, ehe das `</project>` kommt.


----------



## Turing0001 (6. Apr 2021)

kneitzel hat gesagt.:


> Danke für die POM. Da fehlt dann tatsächlich ein Block, so wie ich ihn gezeigt habe.
> 
> Der build Block gehört in den project Block. build und plugins habe ich nur am Anfang des Blocks angedeutet - da Du entsprechende noch nicht hast, musst Du diese Blöcke natürlich schließen.
> 
> Also einfach nach dem dependencies Block einfügen, ehe das `</project>` kommt.


Hallo Kneitzel,

das war's. Danke Dir! Hast Du vielleicht noch einen Tip für ein gutes Buch zu dem Thema (speziell Maven und Git mit Eclipse) oder ein online-Tutorial? Hast Du Erfahrungen mit den udemy-Kursen o.Ä. ? Ich möchte nicht ständig im Nebel herumstochern sondern systematisch lernen.


----------



## kneitzel (6. Apr 2021)

udemy Kurse nutze ich nicht, ich bin der altmodische Bücher Typ 

Bezüglich Bücher habe ich von Pack Publishing:
Maven Essentials
Mastering Apache Maven 3

Wobei da so Bücher eigentlich nicht notwendig sind. Der Einstieg in Maven ist nicht so komplex und so lange man mit  minimalen POM ran geht ("Konvention over Konfiguration" - das ist ein wichtiger Ansatz bei Maven - der Standard ist so gewählt, dass er vieles abdeckt und nur minimale Konfiguration notwendig ist!) dann findet man für die Standard Dinge meist kurze plugin-Blöcke, die alles abhandeln.

Und so man die nicht selbst direkt findet, dann können sie einem hier schnell gegeben werden - hier sind genug Maven Experten, die bei sowas schnell weiterhelfen können.


----------

