2017-04-06 2 views
1

J'utilise la solution de dépendance de référentiel in-project pour inclure un fichier jar tiers en tant que dépendance dans mon projet Maven. Je suis les instructions sur this blog pour cela.Dépendances du référentiel in-project du paquet Maven à l'intérieur du fichier jar

Maintenant, je veux que lorsque je paquet mon projet Maven dans un pot, le pot créé doit avoir un dossier lib avec le jar tiers. Cependant, je ne veux pas que les autres dépendances soient empaquetées dans le pot. (Je ne veux pas un gros pot avec toutes les dépendances emballés à l'intérieur, je veux juste un pot avec le pot de dépendance tiers emballé à l'intérieur).

J'ai essayé de jouer avec le plugin maven-dependency et le plugin maven-jar, mais je n'ai pas réussi à obtenir ce que je voulais.

Quelqu'un peut-il m'aider s'il vous plaît?

Répondre

0

Jetez un oeil à Maven Assembly Plugin. Il permet de filtrer inclus dependencie, vous pouvez donc choisir ce deps à inclure dans l'ensemble

0

Vous pouvez utiliser maven-dependency-plugin (regarder here) comme indiqué ci-dessous, ce plugin fournira beaucoup d'options pour inclure des pots qui ArtifactId (c.-à-<includeArtifactIds>) ou groupId (<includeGroupIds>), etc ...

<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> 
       <includeArtifactIds>YOUR_THIRDPARTY_JAR_NAME</includeArtifactIds> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 

Ainsi, le code ci-dessus ajoutera YOUR_THIRDPARTY_JAR_NAME.jar dans lib de votre fichier .jar dernier dossier.