46 votes

construire un projet maven avec des bibliothèques propriétaires incluses

Comment créer maven pom, qui rendra le projet constructible, puis-je inclure des pots propriétaires avec mon projet directement sans avoir à les retirer du référentiel? quelqu'un a déjà fait ça ?

ÉDITER :

Je ne veux pas le rendre exécutable en construisant un assembly avec des dépendances jar, je veux qu'il soit constructible. Ainsi, toute personne ayant ce projet est capable de le construire, même si les jars sont introuvables dans aucun référentiel.

49voto

Jigar Joshi Points 116533

1 Soit vous pouvez inclure ce jar dans votre classpath d'application 2, vous pouvez installer un fichier jar particulier dans votre reopos maven en

 mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
    -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

41voto

ant Points 8428

Les solutions possibles sont de mettre vos dépendances dans src/main/resources puis dans votre pom :

 <dependency>
groupId ...
artifactId ...
version ...
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/yourJar.jar</systemPath>
</dependency>

Remarque : les dépendances du système ne sont pas copiées dans le fichier jar/war résultant (voir Comment inclure les dépendances du système dans la guerre construite à l'aide de maven )

24voto

mostar Points 1282

Créez un dossier de référentiel sous votre projet. Prenons

 ${project.basedir}/src/main/resources/repo

Ensuite, installez votre jar personnalisé sur ce référentiel :

 mvn install:install-file -Dfile=[FILE_PATH] \
-DgroupId=[GROUP] -DartifactId=[ARTIFACT] -Dversion=[VERS] \ 
-Dpackaging=jar -DlocalRepositoryPath=[REPO_DIR]

Enfin, ajoutez les définitions de référentiel et de dépendance suivantes aux projets pom.xml :

 <repositories>
    <repository>
        <id>project-repo</id>
        <url>file://${project.basedir}/src/main/resources/repo</url>
    </repository>
</repositories>

<dependencies>    
    <dependency>
        <groupId>[GROUP]</groupId>
        <artifactId>[ARTIFACT]</artifactId>
        <version>[VERS]</version>
    </dependency>
</dependencies>

7voto

Larry Shatzer Points 1593

Pourquoi ne pas exécuter quelque chose comme Nexus , votre propre référentiel maven que vous pouvez télécharger des fichiers jar propriétaires tiers, et également proxy d'autres référentiels publics, pour économiser sur la bande passante ?

Cela a également de bonnes raisons d'exécuter votre propre gestionnaire de référentiel Maven.

7voto

Alireza Fattahi Points 1318

Vous pouvez l'obtenir auprès de votre pilote local comme ci-dessous :

 <dependency>
    <groupId>sample</groupId>
    <artifactId>com.sample</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/resources/yourJar.jar</systemPath>
</dependency>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X