2010-06-14 13 views
9

मेरे पास एक प्रोजेक्ट है जो डाटाबेसिंग के लिए अपाचे एक्सएमएलबीन का उपयोग करता है। वर्तमान में यह बहुत आसान है कि इसमें केवल कुछ स्कीमा-फ़ाइलें हैं जो src/main/xsd और xsdconfig में src/main/xsdconfig में हैं।मैवेन जार में स्वचालित रूप से xmlbeans जेनरेट कोड कैसे शामिल करें?

मैं जनरेटेड जार-फ़ाइल में जेनरेट क्लासेस को शामिल करना चाहता हूं। यह काम करता है अगर मैं xmlbeans लक्ष्य निर्दिष्ट करें: "mvn xmlbeans: xmlbeans पैकेज" -> xmlbeans कक्षाएं

के साथ एक जार बनाता है लेकिन मैं सामान्य निर्माण चक्र के भीतर ऐसा करना चाहते हैं: "mvn पैकेज" -> xmlbeans कक्षाओं के साथ एक जार बनाना चाहिए, लेकिन नहीं होगा।

<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"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>org.test</groupId> 
    <artifactId>xmlbeans-maven-test</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <build> 
    <pluginManagement> 
    <plugins> 
    <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>maven-xmlbeans-plugin</artifactId> 
      <version>2.3.3</version> 
    </plugin> 
    </plugins> 
    </pluginManagement> 
    </build> 


    <dependencies> 
    <dependency> 
     <groupId>org.apache.xmlbeans</groupId> 
     <artifactId>xmlbeans</artifactId> 
     <version>2.4.0</version> 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 
</project> 

मैं "उत्पन्न-स्रोतों" करने के लिए मैन्युअल रूप से इसे बाध्य करने की कोशिश की (और "संकलन" चरण के लिए भी) चरण है, लेकिन यह काम नहीं करता है:

पोम निम्नलिखित है।

<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"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>de.leradon</groupId> 
    <artifactId>xmlbeans-maven</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <build> 
    <pluginManagement> 
    <plugins> 
    <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>maven-xmlbeans-plugin</artifactId> 
      <version>2.3.3</version> 
      <executions> 
      <execution> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>xmlbeans</goal> 
       </goals> 
      </execution> 
      </executions> 
    </plugin> 

    </plugins> 
    </pluginManagement> 
    </build> 


    <dependencies> 
    <dependency> 
     <groupId>org.apache.xmlbeans</groupId> 
     <artifactId>xmlbeans</artifactId> 
     <version>2.4.0</version> 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 
</project> 

मैं प्लगइन कैसे कॉन्फ़िगर कर सकते हैं, ताकि जब मैं "mvn पैकेज" चलाने के सभी उत्पन्न वर्गों जार में पैक कर रहे हैं?

नमस्ते, lerad

उत्तर

10

आप प्लगइन कॉन्फ़िगर तो pluginManagement के तहत, आप अभी भी plugins के तहत यह घोषणा करने के लिए की जरूरत है। को आसान बनाने के लिए, नीचे pom.xml में pluginManagement का उपयोग नहीं कर रहा हूँ:

<project> 
    ... 
    <dependencies> 
    ... 
    <dependency> 
     <groupId>org.apache.xmlbeans</groupId> 
     <artifactId>xmlbeans</artifactId> 
     <version>2.4.0</version> 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 
    <build> 
    <plugins> 
     ... 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>xmlbeans-maven-plugin</artifactId> 
     <version>2.3.3</version> 
     <executions> 
      <execution> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>xmlbeans</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

इस पोम (और src/main/xsd में कुछ XSD जो डिफ़ॉल्ट स्थान है) के साथ, mvn clean package चल बस काम करता है (यानी स्रोतों से उत्पन्न कर रहे हैं एक्सएसडी, निर्माण के हिस्से के रूप में संकलित और पैक किया गया)।

-4

इसे आजमाएं।

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>xmlbeans-maven-plugin</artifactId> 
    <version>2.3.2</version> 
    <executions> 
     <execution> 
      <id /> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>xmlbeans</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <schemaDirectory>src/main/xsd</schemaDirectory> 
     <staleFile>${project.build.directory}/generated-sources/xmlbeans/.staleFlag</staleFile> 
     <verbose>false</verbose> 
     <quiet>false</quiet> 
     <javaSource>1.6</javaSource>      
    </configuration> 
</plugin> 
+2

नमूना कोड के साथ एक उत्तर हमेशा क्यों कि कोड काम करेंगे जहां मूल पोस्टर के नहीं था शामिल करना चाहिए। – Frans

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