2013-07-04 30 views
10

इन दिनों मैंने एक्सएएसडी को जावा क्लास में परिवर्तित करने के लिए जेएक्सबी पर कुछ समय बिताया है और इसके विपरीत। शुरुआती, http://www.journaldev.com/1312/how-to-generate-java-classes-from-xsd-using-xjc-maven-plugin के लिए यहां एक बहुत अच्छा ट्यूटोरियल है। मैं कड़ाई से चरणों का पालन करता हूं, लेकिन mvn clean installMaven Jaxb2 xjc प्लगइन त्रुटि कोई स्कीमा नहीं मिला

यहां मेरी 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>jd</groupId> 
    <artifactId>jd</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 


    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 


    <build> 
     <plugins> 
      <!-- Plugin required to build java classes from XSD using XJC --> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>jaxb2-maven-plugin</artifactId> 
       <version>1.5</version> 
       <executions> 
        <execution> 
         <id>xjc</id> 
         <goals> 
          <goal>xjc</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <!-- The name of your generated source package --> 
        <arguments>-extension -npa -b ${project.basedir}/src/main/java/com/moodys/jaxb/global.xjb</arguments> 
       </configuration> 
      </plugin> 

     </plugins> 
    </build> 

</project> 

लेकिन जब मैं mvn clean install टाइप करें, यह मुझे हमेशा त्रुटि निम्नलिखित के रूप में दे:

C:\Users\congy\Desktop\Work\workspace\JaxbFromClass>mvn clean jaxb2:xjc 
[INFO] Scanning for projects... 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building jd 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ jd --- 
[INFO] Deleting C:\Users\congy\Desktop\Work\workspace\JaxbFromClass\target 
[INFO] 
[INFO] --- jaxb2-maven-plugin:1.5:xjc (default-cli) @ jd --- 
[INFO] Generating source... 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 0.487s 
[INFO] Finished at: Thu Jul 04 19:09:37 CST 2013 
[INFO] Final Memory: 4M/122M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.codehaus.mojo:jaxb2-maven-plugin:1.5:xjc (default-cli) on project jd: No schemas have been found -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

किसी को भी मेरे कारण दिखा सकते हैं या बस मुझे बताओ कि मैं अधिक जानकारी के लिए का संदर्भ लेना चाहिए?

एक और सवाल यह है: इस प्रश्न के अनुसार Difference of Maven JAXB plugins, कम से कम तीन जैक्सब प्लगइन्स हैं। तो इन सभी प्लगइन्स सभी एक ही उद्देश्य के लिए उत्पन्न होते हैं? यदि हां, तो क्यों?

अग्रिम धन्यवाद!

उत्तर

13

जैसा कि आपने schemaDirectory प्रदान नहीं किया है, प्लगइन the default schema directory में सभी एक्सएमएल स्कीमा फ़ाइलों से जावा स्रोत जेनरेट करने का प्रयास कर रहा है। आप documentation के अनुसार प्लगइन कॉन्फ़िगर करना चाहिए:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>jaxb2-maven-plugin</artifactId> 
    <version>1.5</version> 
    <executions> 
    <execution> 
     <id>id1</id> 
     <goals> 
    <goal>xjc</goal> 
     </goals> 
     <configuration> 
     <outputDirectory>target/generated-sources/jaxb</outputDirectory> 
     <packageName>com.your.package.jaxb</packageName> 
     <schemaDirectory>src/main/xsd</schemaDirectory> 
     <schemaFiles>jaxb.xsd</schemaFiles> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
+0

कि कर के रूप में नीचे का उपयोग कर सकते हैं। अभी भी एक ही त्रुटि देता है। – jamie

+0

निम्न पंक्ति को हटाने का प्रयास करें: लक्ष्य/जेनरेट-स्रोत/जैक्सबी BlueLettuce16

2

कोशिश यह सुनिश्चित करें कि jaxb.xsdsrc/मुख्य/संसाधनों के तहत मौजूद है बनाने के लिए, प्लगइन वारिंग के बाद से यह योजना खोजने के coudn't है निर्दिष्ट स्थान में।

+0

वास्तव में jaxb.xsd क्या है? क्या यह एक फाइल का नाम है? – zygimantus

0

हम pom.xml फ़ाइल में

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>jaxb2-maven-plugin</artifactId> 
     <version>1.5</version> 
     <executions> 
      <execution> 
       <id>id1</id> 
       <goals> 
        <goal>xjc</goal> 
       </goals> 
       <configuration> 
        <outputDirectory>src/main/java</outputDirectory> 
        <clearOutputDir>false</clearOutputDir> 
        <packageName>com.subu.xsd.model</packageName> 
        <schemaDirectory>src/main/java/schemadir</schemaDirectory> 
        <schemaFiles>XYZ.xsd</schemaFiles> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
संबंधित मुद्दे