سؤال

لقد قررت أن اثنين jaxb. الإضافات ل مافن 2 موجودة، مع بعض التكوينات المختلفة.

واحد من الشمس: http://jaxb.dev.java.net/jaxb-maven2-plugin/, ، والآخر من Mojohaus: http://mojohaus.org/jaxb2-maven-plugin/

أي من هذين المكونات الإضافية يمكن أن ينصح؟


شكرا مات. على مشروع البحث الصغير الخاص بي، وجدت أن هناك مساعد آخر للغاية للشيخوخة من Sunners:

<groupId>com.sun.tools.xjc.maven2</groupId>  
<artifactId>maven-jaxb-plugin</artifactId>  

وهذا واحد:

<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>

وما زالت واحدة من Codehouse.

هل كانت مفيدة؟

المحلول

دعونا تلخيص. لدينا:

  1. ال Maven-Jaxb2-Plugin (https://github.com/highsource/maven-jaxb2-plugin.)
  2. ال Maven-Jaxb-Plugin (https://jaxb.dev.java.net/jaxb-maven2-plugin/)
  3. ال Jaxb2-Maven-Plugin (https://github.com/mojohaus/jaxb2-maven-plugin.)

بناء على تعليقات هذا الموضوع, ، لقد استخدمت دائما Maven-Jaxb2-Plugin (أي البرنامج المساعد # 1):

بشأن Org.jvnet.jaxb2.maven2: Maven-Jaxb2-Plugin مقابل com.sun.tools.xjc.maven2: Maven-Jaxb-Plugin، من وجهة نظري إنه بالتأكيد أول واحد (http://maven-jaxb2-plugin.java.net/).

يحتوي هذا البرنامج المساعد على المزيد من الميزات أكثر من com.sun.tools.xjc.maven2: Maven-Jaxb-Plugin، التطوير نشط. أخيرا، أنا أحد المؤلفين :) وأقول إننا نستمر في اتصال مع مطوري Jaxb والمستخدمين والتفاعل مع أحدث الميزات / الطلبات.

وبالفعل، فإن البرنامج المساعد # 2 ليس نشطا للغاية (ميت؟). ولأنني كنت دائما سعيدا # 1، لم أستخدم البرنامج المساعد # 3 لذلك لا أستطيع أن أقول حقا أي شيء حيال ذلك. فقط في حالة، إليك تكوين عمل للمساعد رقم 1:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <inherited>true</inherited>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.jvnet.jaxb2.maven2</groupId>
        <artifactId>maven-jaxb2-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

نصائح أخرى

لقد جربت مؤخرا المكونات الإضافية الثلاثة المذكورة أعلاه (المدرجة هنا أيضا):

  1. MAVEN-JAXB2- البرنامج المساعد (http://maven-jaxb2-plugin.java.net/)
  2. Maven-Jaxb-Plugin (https://jaxb.dev.java.net/jaxb-maven2-plugin/)
  3. Jaxb2-Maven-Plugin (http://mojo.codehaus.org/jaxb2-maven-plugin/)

انتهى بي الأمر باستخدام خيار رابع: البرنامج المساعد CXF XJC Maven http://cxf.apache.org/cxf-xjc-plugin.html.

إذا كنت أفتقد شيئا ما أود أن أعرف، ولكن يبدو أن التكوين واضح أكثر فصحا لما كنت أحاول القيام به وأسمحت له بسهولة التعامل مع توليد الطبقة المكررة داخل مساحة الاسم نفسه - على غرار هذا السؤال: هل هناك طريقة للتعامل مع تعريفات العناصر المكررة عبر ملفات .xsd متعددة في Jaxb؟.

لدي الآن سيطرة حبيبية على كل XSD واردة حزمة جافا المقابلة؛ فيما يلي تكوين عينة بالقرب من الشخص الذي أستخدمه.

 <plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-xjc-plugin</artifactId>
    <version>2.3.0</version>
    <configuration>
        <extensions>
            <extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:2.3.0</extension>
        </extensions>
    </configuration>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>xsdtojava</goal>
            </goals>
            <configuration>
                <sourceRoot>${basedir}/target/generated-sources/src/main/java</sourceRoot>
                <xsdOptions>
                    <xsdOption>
                        <xsd>src/main/resources/schema/commands.xsd</xsd> <!--shares a common.xsd file causing the conflicts-->
                        <packagename>com.foo.bar.commands</packagename>
                    </xsdOption>
                    <xsdOption>
                        <xsd>src/main/resources/schema/responses.xsd</xsd>
                        <packagename>com.foo.bar.responses</packagename>
                    </xsdOption>
                </xsdOptions>
            </configuration>
        </execution>
    </executions>
</plugin>

أنا مؤلف Maven-Jaxb2-Plugin.

يستخدم Maven-Jaxb2-Plugin حاليا JAXB 2.1. في الإصدارات التالية، سنقدم أيضا إصدارات Jaxb 2.0 و Jaxb 2.2.

أما بالنسبة إلى مناقشة "البرنامج المساعد" أفضل "، تحقق من الميزات, ، قرر نفسك. اسمحوا لي أن أعرف إذا فاتتك بعض الوظائف.

  • يستخدم Maven-Jaxb2-Plugin التنفيذ المرجعي Jaxb من قبل Oracle / Sun
  • استخدام CXF و Jaxb2-Maven-Plugin Appache Xerces

على الظل الطفيف: كانت هناك مشكلة في استخدام Maven-Jaxb2-Plugin مع Eclipse Indigo الذي أرسلته هنا. وبعد أصبح الإصلاح (تمديد) مؤخرا متاحا مؤخرا.

لا يهدف هذا إلى عدم الاتفاق، على الإطلاق، بتوصية MAVEN-JAXB2-Plugin عبر MAVEN2-JAXB-Plugin. لا أعرف، لكنني أتوقع أن يكون المكون الإضافي Maven2-Jaxb-Plugin نفس المشكلة، وربما لم يتم حلها.

وأعتقد أن واحد هو لمواصفات Jaxb الأصلية و OneShaus One مخصص لمواصفات Jaxb 2.1 (وإذا كان سيتم تحميل Dev.java.net بعض الوقت في هذا القرن، سأكون قادرا على القول بالتأكيد).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top