Je viens de commencer à utiliser Maven, à une capacité débutante, je veux juste comprendre quelque chose autour de dépendances. J'essaie de créer un micro service Web avec ITEXT et la fonctionnalité de sortie PDF. Donc, mes toutes premières étapes consistent à voir si je peux obtenir une sortie PDF à partir d'un programme Java très simple.
Dans mon fichier POM, j'ai les dépendances suivantes: p>
<?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>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<name>my-app</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<itext.version>RELEASE</itext.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- iText Core -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>${itext.version}</version>
<type>pom</type>
</dependency>
<!-- iText pdfHTML add-on -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>html2pdf</artifactId>
<version>2.1.6</version>
</dependency>
</dependencies>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
3 Réponses :
Lorsque Maven Build est exécutée, Maven télécharge automatiquement tous les pots de dépendance dans le référentiel local. P>
Le référentiel local de Maven est un emplacement de dossier sur la machine du développeur, où tous les artefacts de projet sont stockés localement. P>
Habituellement, ce dossier est nommé Voici où se trouve le chemin d'accès par défaut sur ce dossier - basé sur OS: p>
Windows Strard>: C: \ users \ user_name \ .m2 p>
Mac STR FORT>: /USERSERS/USER_NAME/.M2 P>
Merci Daniel, alors quand j'exécute la commande Package à Maven pour le projet, les fichiers de dépendance seront-ils enveloppés dans le fichier JAR?
@ JeePersCreepers Lorsque vous exécutez MVN Installez un pot sera stocké dans le référentiel local pour chaque version du projet
Maven télécharge les dépendances vers le référentiel M2 local. Mais cela est plus destiné à construire l'application et non à courir. P>
Ce que vous voulez (copiez les dépendances à côté du pot de sortie) peut être obtenu avec la dépendance des objectifs: Copier-dépendances P>
Voir ce blog Post: P>
Merci pour votre réponse, vraiment utile pour ma compréhension.
Gestion des dépendances est l'une des caractéristiques essentielles de Maven. P>
Gestion de dépendance: il est possible de définir des dépendances à d'autres projets. Pendant la construction, le système de construction maven résout la dépendances et il construit également les projets dépendants si nécessaire. P> blockQuote>
Résolution des dépendances signifie qu'il télécharge tous les bocaux spécifiés dans le système local. p>
L'outillage Maven lit le fichier POM et résout les dépendances de le projet. Maven Validate Si les composants requis sont disponibles dans un référentiel local. Le référentiel local se trouve dans le .m2 / référentiel Dossier du répertoire domestique des utilisateurs. P> blockQuote>
Notez que .m2 / est un dossier caché. Si vous utilisez Linux, ce serait ce chemin /home/someuser/.m2 p>
Lire ceci P>
Si cependant, cela ne télécharge pas du tout des pots ni de créer le répertoire .m2, vous ne construisez pas le droit du projet ou que vous n'êtes pas connecté à Internet. P>
"Cela ne semble pas faire ça" est très vague. Qu'avez-vous fait exactement et quelle erreur avez-vous eu?
Le POM ne fait i> n'importe quoi; C'est une description ("modèle"). Le réacteur Maven fait les choses, généralement avec
mvn code> de la ligne de commande.