Maven Dependencies beim install mit in die Jar einbinden

Diskutiere Dependencies beim install mit in die Jar einbinden im Deployment Forum; Hi, ich wollte einfach mal fragen, wie ich bei Maven dafür sorgen kann , dass Dependencies(MongoDBAsyncDriver) mit in die .jar gepackt werden und...

  1. XHann3sX
    XHann3sX Mitglied
    Hi,
    ich wollte einfach mal fragen, wie ich bei Maven dafür sorgen kann , dass Dependencies(MongoDBAsyncDriver) mit in die .jar gepackt werden und sie beim Aufrufen der Datei vorhaden ist, mein pom.xml Eintrag sieht so aus
    Code (Text):
     <dependency>
                <groupId>org.mongodb</groupId>
                <artifactId>mongodb-driver-async</artifactId>
                <version>3.4.0</version>
                <scope>compile</scope>
            </dependency>
    Habe dem Scope schon einige Male geändert, muss ich noch irgendwas anderes einstellen ?

    -Hannes
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. thecain
    thecain Aktives Mitglied
    Der interessante Teil deines pom.xml wäre aber dort, wo du das .jar machst
     
  4. XHann3sX
    XHann3sX Mitglied
    Code (Text):
    <?xml version="1.0" encoding="UTF-8"?>
    <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>hannes.test</groupId>
        <artifactId>Test</artifactId>
        <version>0.1</version>
        <build>
            <finalName>Test</finalName>
            <resources>
                <resource>
                    <directory>${project.basedir}/src/main/resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.5.1</version>
                    <configuration>
                        <target>1.8</target>
                        <source>1.8</source>
                    </configuration>
                </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
                <groupId>org.mongodb</groupId>
                <artifactId>mongodb-driver-async</artifactId>
                <version>3.4.0</version>
                <scope>compile</scope>
            </dependency>
        </dependencies>

        <repositories>
         
        </repositories>



       
    </project>

    So sieht die Pom in etwas aus habe sie etwas bei den Dependencies und den Repositorys gekürzt


    -Hannes
     
  5. thecain
    thecain Aktives Mitglied
  6. Sasuke
    Sasuke Mitglied
    Hey,

    der genannte Link redet eigentlich viel herum, die Methoden sind jedoch schon etwas Älter und teilweise etwas kryptisch. Ich würde Maven Shading empfehle, ganz direkt. Zum einen gibt mykong auch hierzu etwas her: https://www.mkyong.com/maven/create-a-fat-jar-file-maven-shade-plugin/ und zum andern kann man sich mal https://stackoverflow.com/questions/36093084/include-dependency-in-maven-shade-plugin sowie https://stackoverflow.com/questions/34829787/how-to-use-maven-shade-to-build-jar-and-war und https://maven.apache.org/plugins/maven-shade-plugin/ ansehen.

    Mit freundlichen Grüßen
    Sasuke
     
  7. Kababär
    Kababär Aktives Mitglied
    Hey,

    danke für eure Antworten.
    Nachdem ich mein lokales Repository gelöscht habe, habe ich keinen XML-Parser-Fehler mehr erhalten.
    Dann meckerte er rum, dass er etwaige Klassen nicht mehr finden, wenn ich "mvn package" aus dem cmd heraus starte. Dies lag an einer Jar sowie von ihr abhängige Nativen Code, die ich über die IDE eingebunden hatte. Dies habe ich über Maven gelöst, indem ich diese ins lokale Repo geschickt habe.

    Allerdings lässt sich die exectuble Jar immer noch nicht ausführen. Es passiert nichts :(

    Es handelt sich um OpenCV, das ich wie folgt in der POM hinzugefügt habe

    Code (Text):
     <dependency>
                <groupId>opencv320</groupId>
                <artifactId>com.dtk</artifactId>
                <version>3.20</version>
                <scope>system</scope>
                <systemPath>${project.basedir}/resource/jars/opencv-320.jar</systemPath>
            </dependency>
    Mein Assembly-Plugin habe ich wie folgt geändert:
    Code (Text):
     <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.2-beta-4</version>
                    <configuration>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <archive>
                            <manifest>
                                <mainClass>main.MainFX</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
    Beim Starten der Jar-with-dependencies passiert jedoch wie gesagt nichts. Es kommt auch keine Fehlermeldung, was ich schade finde.
    Meine Vermutung ist, dass die dll-Datei fehlt. Wie kann ich diese denn einbinden?
     
  8. Kababär
    Kababär Aktives Mitglied
    Oh ich merke gerade, dass ich im falschen Thread gepostet hab... :oops:
     
Die Seite wird geladen...

Dependencies beim install mit in die Jar einbinden - Ähnliche Themen

Eclipse Plugin Projekt, Maven Projekt und dependencies
Eclipse Plugin Projekt, Maven Projekt und dependencies im Forum Java Basics - Anfänger-Themen
Umgang mit transitiven Dependencies
Umgang mit transitiven Dependencies im Forum Deployment
WFLYCTL0180: Services with missing/unavailable dependencies
WFLYCTL0180: Services with missing/unavailable dependencies im Forum Deployment
Maven dependencies Informationen finden
Maven dependencies Informationen finden im Forum IDEs und Tools
Warum werden alte dependencies deployt?!
Warum werden alte dependencies deployt?! im Forum Deployment
Thema: Dependencies beim install mit in die Jar einbinden