উত্স এবং জাভাডকের সাথে কীভাবে এসএনএপিএসএইচটি স্থাপন করা যায়?


92

আমি আমার স্ন্যাপশটগুলির সাথে উত্স এবং জাভাদোকগুলি স্থাপন করতে চাই। এর অর্থ এই যে আমি নিম্নলিখিত কমান্ডটি স্বয়ংক্রিয় করতে চাই:

mvn clean source:jar javadoc:jar deploy

কেবল কার্যকর করতে:

mvn clean deploy

আমি চাই না যে জাভডোক / উত্স উত্স উত্পাদন installপর্যায়ে চালানো হবে (অর্থাত্ স্থানীয় বিল্ডগুলি)।

আমি জানি যে উত্স / জাভাদোক প্লাগইনগুলি releaseপ্লাগইনটির কার্য সম্পাদনের সাথে সিঙ্ক্রোনাইজ করা যেতে পারে তবে কীভাবে স্ন্যাপশট রিলিজে এটি ওয়্যার করবেন তা আমি বুঝতে পারি না।

উত্তর:


76
<build>
  <plugins> 
    <plugin>
      <artifactId>maven-source-plugin</artifactId>
      <executions>
        <execution>
          <id>attach-sources</id>
          <phase>deploy</phase>
          <goals><goal>jar-no-fork</goal></goals> 
        </execution>
      </executions>
    </plugin>
    <plugin> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <executions> 
        <execution> 
          <id>attach-javadocs</id>
          <phase>deploy</phase>
          <goals><goal>jar</goal></goals> 
        </execution> 
      </executions> 
    </plugin>
    <plugin> 
      <!-- explicitly define maven-deploy-plugin after other to force exec order -->
      <artifactId>maven-deploy-plugin</artifactId> 
      <executions> 
        <execution> 
          <id>deploy</id>
          <phase>deploy</phase>
          <goals><goal>deploy</goal></goals> 
        </execution> 
      </executions> 
    </plugin>
  </plugins> 
</build>

সম্পূর্ণ উদাহরণের জন্য সোনাটাইপের ওএসএস প্যারেন্ট POM দেখুন ।


4
আমি এই সেটআপটি ব্যবহার করছি এবং এটি বেশ ভালভাবে কাজ করে। তবে আমার দুটি ছোট সমস্যা ছিল: একটি, উত্পন্ন উত্সগুলি "জার" লক্ষ্য অন্তর্ভুক্ত নয়, আপনার জন্য "জার-নং-কাঁটাচামচ" লাগবে। দ্বিতীয়ত, রিলিজ প্লাগইনে একটি ত্রুটি রয়েছে যা রিলিজের উত্স দু'বার উত্পন্ন করতে পারে (এবং তাই দু'বার মোতায়েন করা হয়েছে, যার ফলে সংগ্রহস্থল পরিচালকদের সমস্যা হতে পারে)
মিগ্লাচে

4
maven-source-plugin:jarpackageডিফল্টরূপে এই পর্যায়ে সংযুক্তি হয় , যাতে আপনি ছেড়ে চলে যেতে <phase>verify</phase>পারেন এবং একই জিনিসটি সম্পাদন করতে পারেন। তদুপরি আমি নিশ্চিত নই যে আপনি যেভাবে যাইহোক এটি যাচাই করতে সংযুক্ত করবেন কেন এই পর্বটি "প্রকল্পটি প্যাকেজটি প্যাকেজ করার জন্য এবং ইন্টিগ্রেশন পরীক্ষা চালানোর" উদ্দেশ্যে তৈরি হয়েছে।
ম্যাট বি বি

@ এমগ্লাউচি @ ম্যাট আপনার মন্তব্যের জন্য ধন্যবাদ। আমি স্রেফ উপযুক্ত পরিবর্তন করেছি made
sfussnegger

4
@ হেনরিক ওকে, আমি স্পষ্টতই ম্যাভেন-ডিপ্লয়ে-প্লাগইন যুক্ত করেছি পাশাপাশি ম্যাভেন মনে হয় (বা চেষ্টা করে) প্লে-তে প্লামিনগুলি সংজ্ঞায়িত করা হয়েছে এমন ওভারে মৃত্যুর গ্যারান্টি দেওয়ার জন্য। যদিও এর জন্য কিছু পরীক্ষামূলক প্রয়োজন হতে পারে।
sfussnegger

4
এলোমেলো আইডি ব্যবহার করে নতুন এক্সিকিউশন তৈরি হয় আমি ভেবেছিলাম আপনি
ডিফল্টর

48

কেবলমাত্র এমন একটি বিকল্প যুক্ত করতে যা আপনাকে প্লাগইন কনফিগারেশনের সাথে কৌতুক করতে হবে না:

mvn -DperformRelease=true [goals]

ক্রেডিট এমসিবিলেনে http://sea36.blogspot.com/2009/02/attaching-javadocs-and-sources-to-maven.html?showComment=1314177874102#c6853460758692768998


4
আমি উল্লেখ করতে চাই যে এই বৈশিষ্ট্যটি ভবিষ্যতে ম্যাভেনের মুক্তি (সম্ভবত মেভেন -4?) এ চলে যেতে পারে। মাভেন সুপার পম
ড্যান

46

ড্যান উল্লেখ করা নিবন্ধে আরও একটি পদ্ধতির কথা উল্লেখ করা হয়েছে যা পোমগুলি সংশোধন না করে কাজ করে এবং শীঘ্রই কোনও দিনই দূরে যাবে না:

এমভিএন ক্লিন জাভাদোক: জার উত্স: জার ইনস্টল

যা মাভেন 3+ এর সাথে দুর্দান্ত কাজ করে ...

এমভিএন ক্লিন জাভাদোক: জার উত্স: জার মোতায়েন

যা আমি জেনকিন্স থেকে নেক্সাসে মোতায়েন করে পরীক্ষা করেছি।

এই পদ্ধতিরটি দুর্দান্ত ছিল কারণ আমাকে কেবল কিছু জেনকিন্সের কাজ সংশোধন করতে হয়েছিল এবং আমার পোমগুলির সাথে গোলযোগ করার দরকার পড়েনি।


4
পোম-মুক্ত সমাধানের জন্য ধন্যবাদ! নোট করুন যে জাভাডোক: জার এবং / অথবা উত্স: জারটি ইনস্টল বা স্থাপনার আগে অবশ্যই উপস্থিত হবে , বা অতিরিক্ত জারগুলি স্থাপনার সাথে "সংযুক্ত" হবে না।
seanf

4
FWIW এই বিকল্পগুলি এর সাথেও কাজ করে package:mvn clean javadoc:jar source:jar package
ইকো

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