web-dev-qa-db-fra.com

Comment inclure des pots externes dans le processus de construction d'un pot Maven?

Je veux créer un fichier .jar avec des dépendances dans maven. Malheureusement, je dois inclure des fichiers .jars externes dans mon chemin de construction. Lorsque j'essaie maintenant de créer ce projet avec le package maven, j'obtiendrai une erreur indiquant que ces fichiers .jars externes sont introuvables.

Comment adapter mon fichier pom pour ajouter ces pots? courant:

    <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/classes/lib</outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>false</overWriteSnapshots>
                            <overWriteIfNewer>true</overWriteIfNewer>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <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>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
    </plugins>
19
Matthias Kricke

Vous pouvez inclure les fichiers jars externes dans votre chemin de génération en tant que dépendance avec <scope>system</scope>.

Vérifiez cela lien

13
basiljames

Vous devez utiliser la commande ci-dessous pour ajouter un pot externe dans le dossier .m2

mvn install:install-file -Dfile=[JAR] -DgroupId=[some.group] -DartifactId=[Some Id] -Dversion=1.0.0 -Dpackaging=jar

Cela ajoutera le pot donné à votre dossier .m2. Ensuite, accédez à pom.xm et ajoutez simplement la dépendance avec l'ID de groupe, l'ID d'artefact et la version donnés.

6
Nirbhay Rana

Une solution simple pour cela est de l'ajouter dans le référentiel maven local

Une façon de le faire est via les commandes d'installation de mvn comme suggéré dans le post précédent.

Un autre moyen simple est,

  1. Dans votre idée Eclipse, faites un clic droit sur le projet, sélectionnez l'option Maven.
  2. Sélectionnez Installer ou déployer un artefact dans une option de référentiel maven et cliquez sur Suivant.
  3. Cliquez sur Parcourir à côté de la case à cocher Fichier d'artefact et sélectionnez votre fichier jar.
  4. Entrez le GroupId et ArtifactId et la version assurez-vous que générer le pom et créer la somme de contrôle sont vérifiés et que l'emballage est jar

Cliquez sur terminer, Wallah !!! votre travail est terminé, le pot est ajouté dans votre référentiel local que vous pouvez définir dans le répertoire setting.xml ou m2.

Maintenant, ajoutez simplement la dépendance maven simple selon la version GroupId, ArtifactId & jar que vous avez entrée lors de l'importation et c'est tout, votre jar externe sera emballé par maven.

3
swapnil thorat