# [Maven] Depencies mit in jar übernehmen



## Mief (27. Sep 2014)

Hallo, ich habe ein großes Problem mit Maven. Und zwar binde ich über Maven das simple-json Paket ein. Allerdings brauche ich dieses Paket auch später in der fertigen Har-File. Allerdings kopiert Maven das Paket nicht in die fertige Jar-File. Aus diesem Grund bekomme ich auch immer eine ClassNotFoundException. Wie schaffe ich es, dass Maven das Paket mit übernimmt?
Nebenbei, ich kenne mich mit Maven eigentlich überhaupt nicht aus. Und ja: Ich habe gegoogelt, und die Ergebnisse haben nicht geholfen.

Hier die pom.xml:

```
<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>de.bytecraft-software</groupId>
  <artifactId>SpreadMail</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>SpreadMail</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>net.md-5</groupId>
      <artifactId>bungeecord-api</artifactId>
      <version>1.7-SNAPSHOT</version>
      <type>jar</type>
      <scope>provided</scope>
    </dependency>
    <dependency>
	  <groupId>mysql</groupId>
	  <artifactId>mysql-connector-java</artifactId>
	  <version>5.1.6</version>
    </dependency>
    [B]<dependency>
    	<groupId>com.googlecode.json-simple</groupId>
    	<artifactId>json-simple</artifactId>
    	<version>1.1.1</version>
    	<scope>provided</scope>
    </dependency>[/B]
  </dependencies>
  
  <repositories>
    <repository>
      <id>bungeecord-repo</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </repository>
  </repositories>
  
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
```

Und hier der Build-output:

```
[INFO] Scanning for projects...
[INFO] 
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building SpreadMail 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ SpreadMail ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ SpreadMail ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ SpreadMail ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/****/Entwicklung/BungeeCord/java/SpreadMail/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ SpreadMail ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ SpreadMail ---
[INFO] Surefire report directory: /Users/****/Entwicklung/BungeeCord/java/SpreadMail/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running de.bytecraft_software.SpreadMail.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ SpreadMail ---
[INFO] Building jar: /Users/****/Entwicklung/BungeeCord/java/SpreadMail/target/SpreadMail-0.0.1-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.958 s
[INFO] Finished at: 2014-09-27T13:39:36+01:00
[INFO] Final Memory: 10M/309M
[INFO] ------------------------------------------------------------------------
```


----------



## EasyEagle (29. Sep 2014)

Hallo,
nehm mal bei der Dependency die Zeile *<scope>provided</scope>* raus.
Ich denke dann sollte es gehen.
Hier ein paar Infos zum Thema scope: Maven


----------



## Mief (29. Sep 2014)

Das seltsame ist, dass ich das am Anfang auch nicht hatte. Nachdem ich dann im Internet gelesen habe, dass das benötigt würde, habe ich es hinzugefügt, aber es hat nicht geholfen. Ich habe alle scopes durchprobiert, mit keiner Funktioniert es.

Edit: Hier nochmal die genaue Fehlermeldung:

```
java.lang.NoClassDefFoundError: org/json/simple/parser/JSONParser
```


----------



## Mief (30. Sep 2014)

So, das Problem ist jetzt gelöst. Hatte noch zusätzlich in einem anderen Forum gefragt und da habe ich die richtige Lösung bekommen. Und zwar habe ich das Maven-Shade-Plugin eingebunden.


----------

