Filtre dépendances copié par Maven est la copie de la dépendance?
J'ai besoin de essentiellement les objectifs suivants:
- Construire ma bibliothèque dans un BOCAL. (Facile, déjà fait.)
- Copie de ma bibliothèque de dépendances dans un dossier local, dont l'objectif principal du projet BOCAL, à l'exclusion des dépendances marqué comme
provided
.
Je n'arrive pas à obtenir la deuxième partie terminée. Est-il une meilleure façon de faire ce que la façon dont je le fais ci-dessous? Je suis essentiellement le déploiement de ces Bocaux à un répertoire lib sur un serveur. Malheureusement, le code ci-dessous comprend tous les Pots, même provided
, mais ne comprend pas le projet de sortie de POT. Dois-je utiliser un autre plugin pour cela?
<?xml version="1.0"?>
<project>
...
<dependencies>
<dependency>
<groupId>com.provided</groupId>
<artifactId>provided-lib</artifactId>
<version>1.2.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>/hello</outputDirectory>
<excludeTransitive>true</excludeTransitive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
- Voir aussi: stackoverflow.com/questions/8310539/...
Vous devez vous connecter pour publier un commentaire.
Pour empêcher le pluging pour recueillir fourni dépendances vous pouvez utiliser @Raghuram solution de (+1). J'ai essayé aussi de sauter test étendue de dépendances et trouvé le question qu'il ne peut pas être fait aussi simple que cela - comme test signifie "tout " dans le plugin sémantique.
Donc la solution à exclure fourni et test portée est de includeScope runtime.
Après la collecte des dépendances vous pouvez copier les projets de pot avec le maven-antrun-plugin dans le répertoire cible, par exemple:
Je ne connais pas d'autre solution - à côté de la création d'une nouvelle pom-dist.xml (peut-être
<packaging>pom</packaging>
) qui tient juste la dépendance à votre bibliothèque, et recueille toutes les dépendances transitives test exclusif/fourni portée. Vous pouvez exécuter ce avecmvn -f pom-dist.xml package
si vous ne voulez pas lui donner un tout nouveau projet.Comme documenté ici, vous pouvez essayer le réglage de
excludeScope
paramètre pour exclure les personnes à charge avecprovided
portée.Comme pour le plugin à l'exclusion de l'actuel projet bocal, je suppose que c'est par la conception.
Vous pourriez créer un projet maven pour faire ce travail.
Ajouter à mes deux cents.
Mettre le
<excludeScope>provided</excludeScope>
dans l'exécution n'a pas fonctionné.À exclure la condition pots de mettre l'élément en dehors de l'exécution:
Commande:
mvn dependency:copy-dependencies
.Pots sont copiés à
target/dependency
.