আমি কীভাবে আমার পরীক্ষাগুলি এড়াতে মেভেন-রিলিজ-প্লাগইন পেতে পারি?


177

পরীক্ষাগুলি ট্রিগার না করে কীভাবে চালাবার জন্য ম্যাভেন-রিলিজ-প্লাগইন পাব?

আমি চেষ্টা করেছি

-Dmaven.test.skip=true 

এবং

-DskipTests 

এবং

-DpreparationGoals=clean

... তবুও কোনও কাজ হয়নি।

হ্যাঁ, আমি জানি যে পরীক্ষাগুলি পাস না হলে আমার ছেড়ে দেওয়া উচিত নয়, তবে আমার সহকর্মীদের নির্ভরযোগ্য পরীক্ষাগুলি লেখার উপর আমার নিয়ন্ত্রণ নেই।

উত্তর:


406

-Darguments="-DskipTests" আপনি যা চান তা হ'ল বা স্পষ্টভাবে পোমে ফোরকৃত মৃত্যুদন্ড কার্যকর করতে পারেন।


1
এটি আমার জন্য ধন্যবাদ, ধন্যবাদ এবং +1 কিন্তু ... এই কি প্রয়োজনীয়?
javamonkey79

5
এটি প্রয়োজনীয় কারণ রিলিজ প্রক্রিয়াটি একটি নতুন মাভেন প্রক্রিয়া কাঁটাচ্ছে, এবং টিপিকাল -ডস্কিপটেষ্টগুলি সিস্টেমের বৈশিষ্ট্য হিসাবে পাস হয় না।
এডি 19

4
আমি আপনাকে ভোট দিতে পারে ইচ্ছুক 2। আমি এই অধিকারটি পাওয়ার চেষ্টা করে ঘন্টা ব্যয় করেছি ... তবে ১. আমি নথিতে কোনও কিছু মিস করেছি বা এমভিএন ডকুমেন্টেশনে কিছু হারিয়েছে? ২. আমি <skipTests>true</skipTests>আমার সংস্থা পিওএম-তে কনফিগার করেছি। তবুও কাজ হয়নি। কি কাজ ছিল আপনার সমাধান ছিল।
পুলক অগ্রওয়াল

এই কাজটি করার জন্য আপনার কি pom এ নির্দিষ্ট কিছু কনফিগারেশন দরকার?
ডেনকোবয়

42

-Darguments="..."কাঁটা খাঁটি প্রক্রিয়াতে যুক্তিগুলি পাস করে, তবে এটি উপলব্ধি করা গুরুত্বপূর্ণ যে এখানে দুটি পৃথক সুইচ ব্যবহৃত হচ্ছে। -DskipTestsবাহিনী কোনো পরীক্ষার না চালানোর জন্য ম্যাভেন কিন্তু পরীক্ষার এখনও কম্পাইল করা হয় (এই গুরুত্বপূর্ণ আপনি একটি পরীক্ষা বয়াম ধরনের উপর কোন নির্ভরতা আছে)। -Dmaven.test.skip=trueবাহিনী ম্যাভেন এমনকি পরীক্ষা যার মানে কোনো পরীক্ষা বয়াম উত্পন্ন করা হবে না কম্পাইল না।

সুতরাং, আপনার অবশ্যই ব্যবহার করা উচিত -Darguments, তবে পরীক্ষাগুলি কেবল চলমান ব্যবহারগুলি এড়িয়ে চলার জন্য skipTests, তাদের সংকলন ব্যবহার বন্ধ করতে maven.test.skip


21

আপনি যদি কেবল ইন্টিগ্রেশন টেস্টগুলি বাদ দিতে চান তবে এটি এটি করবে:

-Darguments="-DskipITs"

3

রিলিজ প্লাগইনটি দিয়ে পরীক্ষা এড়াতে এবং এড়িয়ে যাওয়ার জন্য আপনার খুব আলাদা বিকল্প রয়েছে

  • প্রথমটি হচ্ছে মুক্তির লক্ষ্যে ক্লায়কের পক্ষে যুক্তি হিসাবে বা পর্যায়ক্রমে একটি শর্তাদি সরবরাহ করে:

উদাহরণস্বরূপ: mvn -X -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true" -P release-mode release:prepare

-দ্বিতীয়টি হ'ল এই বিল্ডটিতে আপনার pom.xML এ এইগুলি যুক্তিগুলি সম্পাদন করা:

<plugin>    
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.scm</groupId>
                        <artifactId>maven-scm-provider-gitexe</artifactId>
                        <version>1.9.4</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <skip>true</skip>
                    <skipTests>true</skipTests>
                    <preparationGoals>clean validate</preparationGoals>
                    <arguments>-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true</arguments>
                    <useReleaseProfile>false</useReleaseProfile>
                    <releaseProfiles>release-mode</releaseProfiles>
                    <tagNameFormat>TEST-@{project.version}</tagNameFormat>
                </configuration>
            </plugin>

নোট করুন যে দ্বিতীয় পদ্ধতিটি প্রথমে ওভাররাইড করে।

আমি আপনাকে একক ক্রিয়ায় প্রথমে রিলিজ প্রস্তুত করার জন্য রিকমেন্ড করেছি এবং তারপরে আপনি কার্যনির্বাহী পরিচালককে রিলিজ.প্রপার্টি ফাইল সম্পাদনা করতে পারেন এবং exec.additionalArgumentsআপনার যুক্তি উপস্থিত থাকলে বৈশিষ্ট্যগুলি দেখতে পারেন। এটি কেমন দেখতে হবে: exec.additionalArguments=-Dmaven.javadoc.skip\=true -Dmaven.test.skipTests\=true -Dmaven.test.skip\=true -P release-mode

আপনি রিলিজ সঞ্চালন করতে পারেন পরে।


2

সম্পূর্ণ ইউনিট পরীক্ষা এড়াতে, এটি যুক্তি ব্যবহার করে

-Dmaven.test.skip = সত্য

সুতরাং আপনি যদি ইউনিট পরীক্ষা বাদ দিতে চান তবে এটি সমাধান হবে solve

mvn install -Dmaven.test.skip=true
mvn package -Dmaven.test.skip=true

অথবা বিকল্পভাবে আপনি মাভেন-শিফটফায়ার-প্লাগইন এ স্কিপ টেস্টগুলি সংজ্ঞায়িত করতে পারেন

pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.12.4</version>
      <configuration>
         <skipTests>true</skipTests>
      </configuration>
</plugin>

2
এই প্রশ্নটি বিশেষত ম্যাভেন রিলিজ প্লাগইন সম্পর্কে, সুতরাং এইগুলি ম্যাভেন লক্ষ্যগুলি ব্যবহার করা হবে না।
জাপ

-2

কোনও ম্যাভেন প্লাগ-ইন আক্ষরিকভাবে পরীক্ষা সংকলন বা সম্পাদনকে ট্রিগার করে না। এটি একক বা একাধিক প্লাগইনগুলির কার্যকরকরণ (গুলি) চালিত করে এমন মাইভেন লাইফেসাইক্যাল পর্যায়গুলি যখন নির্দিষ্ট লক্ষ্য পর্যন্ত সীমানা অর্জন করে।

সুতরাং, কেবলমাত্র একটি একক প্লাগ-ইন লক্ষ্য সম্পাদন করা পরীক্ষা চালানো ছাড়াই যথেষ্ট:

mvn release:perform

বা প্রকল্প বিল্ড এবং প্যাকেজিংয়ের সাথে একত্রিত করুন:

mvn clean package release:perform
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.