J'essaie de créer un paquet en utilisant Apache Maven. Lorsque j'exécute la commande mvn clean install
, l'erreur ci-dessous est générée:
dependencies.dependency.version 'est manquant pour javax.servlet: servlet-api.jar
J'ai placé ce "servlet-api.jar" dans le dossier de ressources de mon projet
Quelqu'un pourrait-il s'il vous plaît dire où devrais-je placer ce fichier jar?
METTRE À JOUR: Voici mon pom.xml
<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/maven-v4_0_0.xsd">
<parent>
<artifactId>felix-parent</artifactId>
<groupId>org.Apache.felix</groupId>
<version>2.1</version>
<relativePath>../pom/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.4.1-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<name>Maven Bundle Plugin</name>
<description>
Provides a maven plugin that supports creating an OSGi bundle
from the contents of the compilation classpath along with its
resources and dependencies. Plus a zillion other features.
The plugin uses the Bnd tool (http://www.aqute.biz/Code/Bnd)
</description>
<scm>
<connection>scm:svn:http://svn.Apache.org/repos/asf/felix/trunk/bundleplugin</connection>
<developerConnection>scm:svn:https://svn.Apache.org/repos/asf/felix/trunk/bundleplugin</developerConnection>
<url>http://svn.Apache.org/repos/asf/felix/trunk/bundleplugin</url>
</scm>
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- Provided APIs -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</dependency>
</dependencies>
<reporting>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.2</version>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>2.9</version>
<configuration>
<component>12311143</component>
<versionPrefix>maven-bundle-plugin-</versionPrefix>
<statusIds>Resolved,Closed</statusIds>
<maxEntries>1000</maxEntries>
<issueManagementSystems>
<issueManagementSystem>JIRA</issueManagementSystem>
</issueManagementSystems>
<useJql>true</useJql>
</configuration>
</plugin>
</plugins>
</reporting>
</project>
Merci Anderson
Vous n'avez pas ajouté la balise version
dans dependency
.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>1.0.0</version> //Add the version.
</dependency>
J'ai eu cette même erreur pour une raison légèrement différente.
Mon projet utilise la gestion des dépendances (comporte 2 sections <dependencyManagement>
pour une raison quelconque) et comporte de nombreux modules et sous-modules.
_ {Top level} _ pom avait:
<dependencyManagement>
<dependency>
<groupId>org.Apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>${spark.version}</version>
</dependency>
</dependencyManagement>
Sous-niveau pom avait
<dependencyManagement>
<dependency>
<groupId>org.Apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<scope>provided</scope>
</dependency>
</dependencyManagement>
_ {Feuille de pom} avait
<dependency>
<groupId>org.Apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
</dependency>
Pour résoudre ce problème, j'ai supprimé la section <dependencyManagement>
du pom de niveau intermédiaire et changé le feuille pom pour avoir
<dependency>
<groupId>org.Apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<scope>provided</scope>
</dependency>
Le message est assez clair: dans l'élément dependencies
de votre pom, vous avez un élément dependency
avec l'artefact javax.servlet:servlet-api.jar
. Et à l'intérieur de cet élément dependency
, il doit y avoir un élément version, mais vous ne l'avez pas fourni.
<dependencies>
<!-- Provided APIs -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<!-- missing version here: -->
<version>3.0</version>
</dependency>
</dependencies>
Notez que 3.0 est juste un exemple. Fournissez la bonne version.
Dans mon cas, j'ai un seul pom et je faisais face au même problème. Prenant allusion à la réponse de Harry ci-dessus, j'ai ajouté ma section de gestion de la dépendance et le problème résolu.