2015-11-04 6 views
5

में pom.xml मान्य जब एक Maven परियोजना संकलन मैं pom.xml के सत्यापन के चरण के दौरान यह त्रुटि प्राप्त। जटिल निर्माण प्रक्रिया के साथ यह काफी बड़ी परियोजना है। प्रोजेक्ट में केवल जावास्क्रिप्ट कोड है और इसे war में संकलित करने की आवश्यकता नहीं है। मैं या तो के लिए एक रास्ता तलाश कर रहा हूँ:FailOnMissingWebXml त्रुटि ग्रहण

  • बस failOnMissingWebXml अक्षम करने के माध्यम से त्रुटि को निष्क्रिय
  • एक समाधान है कि ग्रहण में इस प्रमाणीकरण त्रुटि रोकता है (यह एक गैर महत्वपूर्ण ग्रहण त्रुटि लगती है) (जवाब संबंधित सवाल मेरी विशिष्ट परिदृश्य के लिए काम नहीं किया)

करने के लिए पूर्ण त्रुटि:

Description Resource Path Location Type web.xml is missing 
and <failOnMissingWebXml> is set to true pom.xml /testproject line 6  
Maven Java EE Configuration Problem 

ग के बाद त्रुटि पर चाट समस्या 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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.scs</groupId> 
    <artifactId>scs-control-panel</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>war</packaging> **THE ERROR POINTS TO THIS LINE** 

    <parent> 
    <groupId>com.scs</groupId> 
    <artifactId>scs</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <relativePath>../scs</relativePath> 
    </parent> 

    <build> 
    </build> 

    <dependencies> 
    </dependencies> 

</project> 

सुनिश्चित नहीं हैं कि अगर यह एक ग्रहण या Maven त्रुटि है, लेकिन शायद ग्रहण के बाद से Maven कमांड लाइन के माध्यम से आसानी से चलाता है। यह एक्लिप्स में भी एक बग हो सकता है, मैं वेब डेवलपर्स संस्करण के लिए ग्रहण जावा ईई आईडीई चला रहा हूं: मंगल .1 रिलीज (4.5.1)।

Update1: मैं ग्रहण लेकिन कोई फर्क नहीं में इस परियोजना को अद्यतन करने की कोशिश की।

अद्यतन 2: मैंने पैकेज प्रकार को war से pom में बदलने की कोशिश की लेकिन कोई फर्क नहीं पड़ता।

+1

मेरा मानना ​​है कि यह डुप्लिकेट है: कृपया इन दो लिंक को देखो: [Maven - हल - web.xml नहीं जावा EE7 परियोजना में पाया] (http://stackoverflow.com/questions/31413990/solved-web-xml -not-पाया-इन-जावा-ee7-परियोजना), और [ग्रहण - web.xml याद आ रही है] (http://stackoverflow.com/questions/31835033/web-xml-is-missing-and-failonmissingwebxml-is सेट करने के लिए सच है) – paulsm4

+0

आप पूर्ण 'pom.xml' प्रदान करें कर सकते हैं? –

+0

उन दोनों सुझाए गए उत्तरों ने मेरी समस्या का समाधान नहीं किया। हटाना। मेटाडा। प्रोजेक्ट। सेटिंग्स। क्लासपाथ। इसके अलावा और अधिक त्रुटियों का कारण बन गया। पूर्ण 'pom.xml' अब संलग्न है। मैंने ग्रहण में परियोजना को अद्यतन करने की कोशिश की लेकिन कोई फर्क नहीं पड़ता। –

उत्तर

13

सब कुछ प्लग-इन के आसपास घूमती है। प्लगइन्स वे प्रोग्राम हैं जो बिल्ड प्रक्रिया के भीतर कुछ व्यवहार निष्पादित करते हैं। कुछ प्लगइन समावेशन हमें कुछ भी घोषित किए बिना निहित किए जाते हैं।

इन गर्भित डिफ़ॉल्ट विन्यास है। उदाहरण के लिए, maven-compiler-plugin सभी परियोजनाओं में इसे घोषित किए बिना शामिल किया गया है। डिफ़ॉल्ट कॉन्फ़िगरेशन को ओवरराइड करने के लिए, हमें प्लगइन को pom.xml फ़ाइल में घोषित करने और कॉन्फ़िगरेशन सेट करने की आवश्यकता है। उदाहरण के लिए आप परियोजनाओं का एक बहुत maven-compiler-plugin जो यह source और जावा 1.5 करने के लिए target सेट है है पर डिफ़ॉल्ट ओवरराइड देखेंगे। 1,8

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

को यह आपको क्या हो रहा है की एक विचार देने के लिए सिर्फ प्लगइन्स के पीछे कुछ सिद्धांत है हम बदल सकते हैं।

कहा जा रहा है कि <packaging>war<packaging> का उपयोग करने के लिए, maven-war-plugin का उपयोग किए बिना हमें कुछ भी घोषित करने के लिए उपयोग किया जाता है। <packaging>jar</packaging> का उपयोग करते समय, maven-jar-plugin का समावेश शामिल है।

maven-war-plugin के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन विफल है जहां web.xml नहीं है (वह कॉन्फ़िगरेशन गुण failOnMissingWebXml है)।तो अगर हम इस डिफ़ॉल्ट ओवरराइड करने के लिए चाहते हैं, हम प्लगइन की घोषणा करने की जरूरत है, तो गलत पर संपत्ति के लिए मूल्य (असफल नहीं)

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml>  
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
+0

के अंदर 'maven-war-plugin' को अपने पोम में जोड़ें, यह समस्या हल करने के लिए लगता है - मुझे आपके उत्तर को दोबारा जांचना है। के रूप में जांच पुराने संस्करण में एक त्रुटि में परिणाम प्रतीत नहीं होता है यह भी ग्रहण (मंगल) के नवीनतम संस्करण के साथ एक मुद्दा हो सकता (लूना) –

7
  1. है:

    mvn clean eclipse:clean 
    
  2. अपने पोम को यह करें:

    Maven में
    <packaging>war</packaging> 
    <properties> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
    </properties> 
    
1

pom.xml को

<failOnMissingWebXml>false</failOnMissingWebXml> 
नीचे संपत्ति जोड़े सेट
0

मुझे लगता है कि सबसे आसान रास्ता युद्ध प्लगइन संस्करण 3. failOnMissingWebXml के लिए डिफ़ॉल्ट मूल्य सचको गलत से बदल दिया गया है चुनने के लिए है।

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>3.0.0</version> 
</plugin> 

एक बार आपके पोम में सेट होने पर गंदा त्रुटि हमेशा के लिए गायब हो जाती है।

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