মাভেন জেএক্সবি প্লাগইনগুলির পার্থক্য


126

আমি নির্ধারণ করেছি যে মাভেন 2 এর জন্য দুটি জ্যাকএক্সবি প্লাগইন রয়েছে, কিছু আলাদা কনফিগারেশন রয়েছে।

একটি হ'ল সূর্যের: http://jaxb.dev.java.net/jaxb-maven2-plugin/ , অন্যটি মোজাহাউস থেকে: http://mojohaus.org/jaxb2-maven-plugin/

এই দুটি প্লাগইনের মধ্যে কোনটি সুপারিশ করা যেতে পারে?


ধন্যবাদ ম্যাট আমার সামান্য গবেষণা প্রকল্পে, আমি দেখতে পেলাম যে সূর্যাদের কাছ থেকে অন্য একটি প্লাগইন আসছে:

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

এবং এটি:

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

এবং এখনও কোডহাউস থেকে একটি।

উত্তর:


104

সংক্ষেপে আসুন। আমাদের আছে:

  1. ম্যাভেন-jaxb2-প্লাগইন ( https://github.com/highsource/maven-jaxb2-plugin )
  2. ম্যাভেন-jaxb-প্লাগইন ( https://jaxb.dev.java.net/jaxb-maven2-plugin/ )
  3. jaxb2-ম্যাভেন-প্লাগইন ( https://github.com/mojohaus/jaxb2-maven-plugin )

এই থ্রেডের মন্তব্যের ভিত্তিতে , আমি সর্বদা ম্যাভেন-জ্যাক্সবি 2-প্লাগইন (অর্থাত্ প্লাগইন # 1) ব্যবহার করেছি:

Org.jvnet.jaxb2.maven2 সম্পর্কিত: maven-jaxb2- প্লাগইন বনাম com.sun.tools.xjc.maven2: maven-jaxb- প্লাগইন, আমার দৃষ্টিকোণ থেকে এটি অবশ্যই প্রথম ( http: // maven-jaxb2) -প্লুগিন.জাভা ডটকম / )।

এই প্লাগইনে com.sun.tools.xjc.maven2: maven-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
কনফিগারেশনের জন্য Thx। শেষ পর্যন্ত আমি কোডহাউস প্লাগইন ব্যবহার করি, যা আমাকে আমার প্রয়োজনের জন্য একই ক্ষমতা দেয়। আমি যতটা দেখেছি কেবল সিনট্যাক্সের মধ্যে পার্থক্য রয়েছে।
কুহ

Ws.apache.org/jaxme/mp যা সম্পর্কে মাভেনের সাইটে সরাসরি উল্লেখ করা হয়েছে?
আরসিএল

1
@ আরসিএল: এটি সম্পর্কে তেমন কিছু বলতে পারি না তবে যেহেতু এটি 4 বছরেরও বেশি সময় ধরে আপডেট করা হয়নি, আমি নিশ্চিত নই যে আমি এটি ব্যবহার করব। ম্যাভেন-জ্যাক্সবি 2-প্লাগইন নিয়ে আমি কেবল খুশি ।
পাস্কাল থিভেন্ট

1
# 1 হিসাবে, ডকুমেন্টেশনের হোস্টিং সাইটটি আজ নিচে রয়েছে বলে মনে হচ্ছে। confluence.highsource.org/display/MJIIP/User+Guide এই প্রকল্পটি কি এই সক্রিয়?
rd

2
@ গ্রেগর maven-jaxb2-pluginএখন গিটহাবে হোস্ট করা হয়েছে । ডকুমেন্টেশন উইকিতে আছে
অভিধান

44

আমি সম্প্রতি উপরে উল্লিখিত তিনটি প্লাগইন চেষ্টা করেছি (এখানেও অন্তর্ভুক্ত রয়েছে):

  1. maven-jaxb2- প্লাগইন ( http://maven-jaxb2-plugin.java.net/ )
  2. ম্যাভেন-জ্যাক্সব-প্লাগইন ( https://jaxb.dev.java.net/jaxb-maven2-plugin/)
  3. jaxb2-maven- প্লাগইন ( http://mojo.codehaus.org/jaxb2-maven-plugin/ )

আমি চতুর্থ বিকল্পটি ব্যবহার করে শেষ করেছি: দ্য সিএক্সএফ এক্সজেসি মাভেন প্লাগইন http://cxf.apache.org/cxf-xjc-plugin.html

যদি আমি কিছু মিস করি তবে আমি জানতে চাই, তবে কনফিগারেশনটি আমি যা করার চেষ্টা করছিলাম তার জন্য আরও সোজা মনে হয়েছিল এবং আরও সহজেই একই নামস্থানের মধ্যে সদৃশ শ্রেণি প্রজন্মের সাথে ডিল করার অনুমতি দিয়েছিল - এই প্রশ্নের অনুরূপ: এখানে কি একটি রয়েছে? 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>

1
দুর্দান্ত পরামর্শ। আমি এটি চেষ্টা করেছিলাম এবং এটি একটি কবজির মতো কাজ করেছে - আপনাকে ধন্যবাদ।
এসজিবি 6'13

কেউ কি জানেন যে এর জন্য একটি Elpipse m2e সংযোগকারী আছে কিনা? আমি কিছু গুগলিং করেছি এবং একটিও পাইনি। আশা করছি আমি কেবল এটি মিস করেছি কারণ আমি এই বিকল্পটি পছন্দ করি।
ব্যবহারকারী 944849

সিএক্সএফ-এক্সজেসি-প্লাগইনটিতে ২০১ 2017 সালের হিসাবে ইলিপ্স সংযোজক রয়েছে But তবে কোডটি ম্যানুয়ালি মেনে চালানো এবং উত্স ডিরেক্টরি যুক্ত করার সমস্যা আমি দেখছি না। আসলে, আমার অভিজ্ঞতা হ'ল জেনারেটেড ক্লাস (JAXB, XMLBeans) সহ প্রকল্পগুলি ভাল বামদিক থেকে বন্ধ রয়েছে এবং বাইনারি ফর্মের (জার) উপর নির্ভরশীল। তারপরে আইডিই দ্রুত কাজ করে এবং কোনও ক্লাসপাথ সমস্যা নেই (বিশেষত এক্সএমএলবিয়ান সহ)।
ভাইটেনিস বিভেইনিস

দেখে মনে হচ্ছে সিএক্সএফ এক্সজেসি ম্যাভেন প্লাগইন কেবল স্কিমা থেকে জাভা উত্স উত্সাহিত করতে সহায়তা করে এবং জ্যাক্সবি টিকা থেকে স্কিমা উত্পন্ন করতে সক্ষম নয়।
আলেবু

19

আমি maven-jaxb2- প্লাগইন এর লেখক ।

ম্যাভেন-জ্যাক্সবি 2-প্লাগইন বর্তমানে জ্যাকএক্সবি 2.1 ব্যবহার করে। পরবর্তী সংস্করণগুলিতে আমরা JAXB 2.0 এবং JAXB 2.2 সংস্করণ সরবরাহ করব।

"কোন প্লাগইন ভাল" আলোচনার জন্য, বৈশিষ্ট্যগুলি পরীক্ষা করে দেখুন , নিজেই সিদ্ধান্ত নিন। আপনি যদি কিছু কার্যকারিতা মিস করেন তবে আমাকে জানান।


ম্যাভেন-জ্যাক্সবি 2-প্লাগইন ব্যবহার করে ক্লাসগুলি থেকে স্কিমার উত্পন্ন করা কি সম্ভব? অথবা প্লাগইনটি কেবল xsd-> জাভা সমর্থন করে?
জর্জি

বর্তমানে এটি কেবল এক্সএসডি-> জাভা।
অভিধান

'ম্যাভেন-জ্যাক্সবি 2-প্লাগইন' নামটি কি মাভেন প্লাগইন নামকরণ কনভেনশন লঙ্ঘন করে না এটি একটি সরকারী মাভেন প্লাগইন? নামটি আমি আপত্তি করি না তবে এটি কখনই আপডেট হয়নি বলে আমি ভেবেছিলাম প্লাগইনটি আর বজায় রাখা হবে না।
FrVaBe

প্লাগইনটি বেশ পুরানো, এটি একটি প্রতিষ্ঠিত কনভেনশন হওয়ার আগেই এটি প্রয়োগ করা হয়েছিল। এবং জ্যাক্সবি 2-ম্যাভেন-প্লাগইন তখনই ফিরে নেওয়া হয়েছিল। আমি মনে করি এখানে নাম সংঘর্ষ এড়ানো গুরুত্বপূর্ণ। তবে আজকাল প্লাগইন বিল্ড এমনকি এই নামকরণ কনভেনশনগুলি প্রয়োগ করে তাই সম্ভবত আমাকে যাইহোক মাইগ্রেশন করতে হবে।
অভিধান

3
@ ল্যানোএক্সিক্স না, এটি নয়। সাধারণত ইউআরএল থেকে স্কিমার সংকলন করার পরামর্শ দেওয়া হয় না। স্কিমার স্থানীয় কপি তৈরি করুন এবং লিঙ্কগুলি পুনরায় লেখার জন্য ক্যাটালগ ফাইলগুলি ব্যবহার করুন।
অভিধান

3
  • maven-jaxb2- প্লাগইন ওরাকল / সান দ্বারা JAXB রেফারেন্স বাস্তবায়ন ব্যবহার করে
  • cxf এবং jaxb2-maven- প্লাগইন অ্যাপাচি জেরেস ব্যবহার করে

2

কিছুটা স্পর্শকাতর: আমি এখানে পোস্ট করা এক্লিপস ইন্ডিগোর সাথে ম্যাভেন-জ্যাক্সবি 2-প্লাগইন ব্যবহারের ক্ষেত্রে একটি সমস্যা ছিল । একটি ফিক্স (এক্সটেনশন) সম্প্রতি উপলব্ধ হয়েছে।

এটি ম্যাভেন-জ্যাক্সবি 2-প্লাগইন ওভার ম্যাভেন 2-জ্যাক্সবি-প্লাগইন এর সুপারিশ সহ মোটেও দ্বিমত পোষণ করার উদ্দেশ্যে নয়। আমি জানি না, তবে আমি আশা করি যে ম্যাভেন 2-জ্যাক্সবি-প্লাগইন একই সমস্যা রয়েছে, সম্ভবত সমাধান হয়নি।


0

আমি অনুমান করব যে একটিটি মূল জ্যাকএক্সবি স্পেসিফিকেশনের জন্য এবং কোডহাউস একটি জ্যাক্সবি ২.১ স্পেসিফিকেশনের জন্য (এবং যদি দেব.জভা.নেট এই শতাব্দীতে কিছুটা সময় লোড করে, আমি নিশ্চিতভাবে বলতে পারব)।


হ্যাঁ, এবং যদি org.jvnet.jaxb2.maven2 প্লাগইন ডাউনড করা সম্ভব হয় তবে আমি তাদের তুলনা করব। যেহেতু জাভা রেপো প্লাগইনটি সরবরাহ করে না এটি খেলা থেকে বাইরে, যদিও কনফিগারেশন-বাক্য গঠনটি আরও কিছুটা সুবিধাজনক বলে মনে হয়েছিল।
কুহ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.