2011-07-11 9 views
5

मैंने एक परियोजना में दो xmlbeans उत्पन्न करने का प्रयास किया। उदाहरण के लिए, प्रत्येक व्यक्ति प्रतिभागी वस्तु प्राप्त करता है, इसलिए मैं उन्हें एक कॉन्फ़िगरेशन में नहीं डाल सकता। जिस तरह से मैंने दो उत्तेजना का उपयोग किया था, यहां मेरी पोम फ़ाइल है:एक पोम फ़ाइल में दो xmlbeans कैसे उत्पन्न करें

  <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>xmlbeans-maven-plugin</artifactId> 
      <version>2.3.3</version> 
      <executions> 
       <execution> 
        <id>xmlbean1</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>xmlbeans</goal> 
        </goals> 
        <configuration> 
         <xmlConfigs> 
          <xmlConfig implementation="java.io.File">src/main/xsdconfig/xmlbean1</xmlConfig> 
         </xmlConfigs> 
         <verbose>true</verbose> 
         <schemaDirectory>src/main/xsd/xmlbean1</schemaDirectory> 
        </configuration> 
       </execution> 
       <execution> 
        <id>xmlbean2</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>xmlbeans</goal> 
        </goals> 
        <configuration> 
         <xmlConfigs> 
          <xmlConfig implementation="java.io.File">src/main/xsdconfig/xmlbean2</xmlConfig> 
         </xmlConfigs> 
         <verbose>true</verbose> 
         <schemaDirectory>src/main/xsd/xmlbean2</schemaDirectory> 
        </configuration> 
       </execution> 
      </executions> 
      <inherited>true</inherited> 
     </plugin> 

लेकिन यह बिल्कुल काम नहीं कर रहा है। क्या कोई मुझे इसके साथ मदद कर सकता है, धन्यवाद

+0

हैं कोई त्रुटि है? – drekka

+0

क्या एकल xmlbeans की पीढ़ी काम करता है? –

+0

सभी को धन्यवाद, मुझे जवाब मिला, निम्नलिखित पोम ठीक काम कर रहा है: – Luke

उत्तर

1

आपको दूसरे आमंत्रण के लिए एक और, विशिष्ट चरण का उपयोग करने का प्रयास करना चाहिए। AFAIK उसी लाइफसाइकिल चरण में एक ही प्लगइन को दो बार निष्पादित नहीं किया जा सकता है।

1

यह काम नहीं करता है क्योंकि id केवल मौजूदा निष्पादन (जब आप इसे ट्विक करना चाहते हैं) ढूंढने के लिए उपयोग किया जाता है।

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

आपके विकल्प क्या हैं?

  1. स्प्लिट कि विभिन्न उप मॉड्यूल में xmlbeans बना सकते हैं और the antrun element.

का उपयोग लेकिन मुझे आश्चर्य है कि क्यों तुम दो xmlConfig तत्वों का उपयोग नहीं कर सकते करने के लिए

  • उपयोग चींटी। बस उन लोगों से के रूप में कई सेम एक निर्देशिका में अपने सभी .xsd फ़ाइलें डाल दिया और बनाने के रूप में आवश्यक

  • +0

    क्योंकि दो xmlbeans दोनों के समान घटक हैं जैसे कि प्रतिभागी, और संकलन करते समय मेवेन संघर्ष हो जाता है। – Luke

    2

    धन्यवाद सब लोग ("Multiple XSDConfig Directories" देखें), मैं इस सवाल का जवाब मिल गया है, तो निम्न पोम ठीक काम कर रहा है:

    <executions> 
           <execution> 
            <id>id1</id> 
            <phase>generate-sources</phase> 
            <goals> 
             <goal>xmlbeans</goal> 
            </goals> 
            <configuration> 
             <schemaDirectory>src/main/xsd/first</schemaDirectory> 
             <xmlConfigs> 
              <xmlConfig implementation="java.io.File">src/main/xsdconfig/first</xmlConfig> 
             </xmlConfigs> 
             <verbose>true</verbose> 
             <sourceGenerationDirectory>target/first-resource</sourceGenerationDirectory> 
             <classGenerationDirectory>target/first-class</classGenerationDirectory> 
             <staleFile>target/first/first.stale</staleFile> 
            </configuration> 
           </execution> 
           <execution> 
            <id>id2</id> 
            <phase>generate-sources</phase> 
            <goals> 
             <goal>xmlbeans</goal> 
            </goals> 
            <configuration> 
             <schemaDirectory>src/main/xsd/second</schemaDirectory> 
             <xmlConfigs> 
              <xmlConfig implementation="java.io.File">src/main/xsdconfig/second</xmlConfig> 
             </xmlConfigs> 
             <verbose>true</verbose> 
             <sourceGenerationDirectory>target/second-resource</sourceGenerationDirectory> 
             <classGenerationDirectory>target/second-class</classGenerationDirectory> 
             <staleFile>target/second/second.stale</staleFile> 
            </configuration> 
           </execution> 
          </executions> 
    
    संबंधित मुद्दे