2013-06-28 13 views
12

Sto provando a creare un pacchetto utilizzando Apache Maven. Quando eseguo mvn clean install comando si sta dando l'errore di seguito:dependencies.dependency.version 'manca l'errore

dependencies.dependency.version' is missing for javax.servlet:servlet-api.jar

ho messo che 'servlet-api.jar' all'interno della cartella delle risorse del mio progetto

Potrebbe qualsiasi chiunque informi dove devo mettere che file jar?

UPDATE: ecco la mia 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> 

Grazie Anderson

+1

Per favore mostraci il tuo pom.xml. Ovviamente hai perso il '' per il '' 'servlet-api'. – LaurentG

+0

Si prega di trovare il mio pom.xml – user2532663

risposta

13

Non è stato aggiunto il tag version in dependency.

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>1.0.0</version> //Add the version. 
</dependency> 
1

Il messaggio è abbastanza chiaro: all'interno dell'elemento dependencies del pom, si dispone di un elemento dependency con l'artefatto javax.servlet:servlet-api.jar . E all'interno di questo elemento dependency, ci deve essere un elemento versione, ma non lo hai fornito.

<dependencies> 
    <!-- Provided APIs --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 

     <!-- missing version here: --> 
     <version>3.0</version> 
    </dependency> 
</dependencies> 

Si noti che 3.0 è solo un esempio. Fornire la versione giusta.

+0

Grazie .. In realtà ho più di 20 dipendenze nel mio POM. sapevo groupid, artefatto, ma non so esattamente la versione. C'è un modo per includere? – user2532663

+1

un modo per includere cosa? Dovresti davvero sapere quale versione dell'API servlet vuoi usare. Nessuno può indovinare per te. –

+0

Ho trovato tutte le versioni ad eccezione di due versioni una è com.day.cq CQ-commons \t \t \t 5.5.0 sapevo la versione precedente è corretto. Ma non sono riuscito a trovarlo. Ma ha dato modo alternativo di importarlo come mvn deploy: deploy-file -DgroupId = com.day.cq -DartifactId = cq-commons -Dversion = 5.5.0 -Dpackaging = jar -Dfile =/percorso/a/file - Durl = [url] -DrepositoryId = [id] cosa url,/path/to/file, id? Per favore guidami – user2532663

2

Ho avuto lo stesso errore per un motivo leggermente diverso.

Il mio progetto utilizza la gestione delle dipendenze (ha 2 sezioni <dependencyManagement> per qualche motivo) e ha molti moduli e sotto-moduli.

Top livello pom avuto:

<dependencyManagement> 
     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-core_2.10</artifactId> 
      <version>${spark.version}</version> 
     </dependency> 
    </dependencyManagement> 

-livello sub pom aveva

<dependencyManagement> 
     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-core_2.10</artifactId> 
      <scope>provided</scope> 
     </dependency> 
    </dependencyManagement> 

Foglia pom avuto

<dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-core_2.10</artifactId> 
    </dependency> 

a Fi x che ho rimosso la sezione <dependencyManagement> dal pom di medio livello e ha cambiato il foglia pom avere

<dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-core_2.10</artifactId> 
     <scope>provided</scope> 
    </dependency> 
0

Nel mio caso ho un singolo pom e stavo affrontando lo stesso problema. Prendendo spunto dalla risposta di Harry in alto, ho aggiunto la mia sezione di gestione indipendente e il problema risolto.

+0

Questo non fornisce una risposta ad una domanda, dovrebbe essere un commento. Si prega di consultare [Quando dovrei commentare?] (Https://stackoverflow.com/help/privileges/comment). Una volta che hai [sufficiente] reputazione (https://stackoverflow.com/help/whats-reputation) sarai in grado di [commentare] (https://stackoverflow.com/help/privileges/comment) su qualsiasi post; invece [fornisci risposte che non richiedono chiarimenti da parte del richiedente] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-, invece). – Dwhitz