2013-06-28 11 views
12

मैं apache maven का उपयोग करके एक बंडल बनाने की कोशिश कर रहा हूं। जब मैं mvn clean install आदेश यह नीचे त्रुटि दे रहा है चलाएँ:निर्भरता.dependency.version 'में त्रुटि गुम है

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

मैं अपने प्रोजेक्ट के संसाधन फ़ोल्डर के अंदर है कि 'सर्वलेट-api.jar' रखा है

किसी भी किसी को भी कृपया बता सकते हैं जहां मुझे लगता है कि इस प्रकार रखना चाहिए जार फ़ाइल?

अद्यतन: यहाँ मेरी 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> 

धन्यवाद एंडरसन

+1

कृपया हमें अपना pom.xml दिखाएं। आपने '' सर्वलेट-एपीआई 'के लिए स्पष्ट रूप से '' को याद किया। – LaurentG

+0

कृपया मेरे pom.xml – user2532663

उत्तर

13

आपने dependency में version टैग नहीं जोड़ा है।

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

संदेश काफी स्पष्ट है: अपने पोम की dependencies तत्व के अंदर, आप शिल्पकृति javax.servlet:servlet-api.jar के साथ एक dependency तत्व । और इस dependency तत्व के अंदर, एक संस्करण तत्व होना चाहिए, लेकिन आपने इसे प्रदान नहीं किया है।

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

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

ध्यान दें कि 3.0 केवल एक उदाहरण है। सही संस्करण प्रदान करें।

+0

धन्यवाद .. वास्तव में मेरे पास मेरे पीओएम में 20 से अधिक निर्भरताएं हैं। मैं groupid जानता था, artifactId लेकिन मैं बिल्कुल संस्करण नहीं जानता। क्या इसमें शामिल करने का कोई तरीका है? – user2532663

+1

क्या शामिल करने के लिए कोई तरीका है? आपको वास्तव में पता होना चाहिए कि सर्वलेट एपीआई का कौन सा संस्करण आप उपयोग करना चाहते हैं। कोई भी आपके लिए अनुमान लगा सकता है। –

+0

मैं दो संस्करण को छोड़ कर सभी संस्करण पाया है एक मुझे पता था कि इसके बाद के संस्करण संस्करण सही है सीक्यू-कॉमन्स \t \t \t 5.5.0 है com.day.cq। लेकिन मेवेन इसे खोजने में असमर्थ है। लेकिन इसे एमवीएन तैनाती के रूप में आयात करने का वैकल्पिक तरीका दिया गया: तैनाती-फ़ाइल -DgroupId = com.day.cq -DartifactId = cq-commons -Dversion = 5.5.0 -Dpackaging = jar -Dfile =/path/to/file - Durl = [url] -DrepositoryId = [id] यह url,/path/to/file, id क्या करता है? कृपया मुझे मार्गदर्शन करें – user2532663

2

मेरे पास एक ही अलग कारण के लिए यह त्रुटि थी।

मेरी परियोजना निर्भरता प्रबंधन का उपयोग करती है (कुछ कारणों से 2 <dependencyManagement> अनुभाग हैं) और इसमें कई मॉड्यूल और उप-मॉड्यूल हैं।

शीर्ष स्तर पोम था:

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

उप-स्तरीय पोम

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

पत्ता पोम था

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

था Fi से एक्स यह मैं मध्य स्तर पोम से <dependencyManagement> अनुभाग निकाल दिया और पत्ती पोम बदल

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

मेरे मामले में करने के लिए मैं एक ही पोम है और एक ही मुद्दे का सामना करना पड़ रहा था। हैरी के उत्तर से संकेत लेते हुए, मैंने अपना निर्भरता प्रबंधन अनुभाग जोड़ा और समस्या हल हो गई।

+0

यह एक प्रश्न का उत्तर नहीं प्रदान करता है, एक टिप्पणी होना चाहिए। कृपया देखें [मुझे कब टिप्पणी करनी चाहिए?] (Https://stackoverflow.com/help/privileges/comment)। एक बार आपके पास पर्याप्त [प्रतिष्ठा] (https://stackoverflow.com/help/whats-reputation) हो जाने पर आप किसी भी पोस्ट पर [टिप्पणी] (https://stackoverflow.com/help/privileges/comment) करने में सक्षम होंगे; इसके बजाय, [उन उत्तरों को प्रदान करें जिन्हें पूछताछ से स्पष्टीकरण की आवश्यकता नहीं है] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-कर-बजाय)। – Dwhitz

संबंधित मुद्दे