মাভিন-সেন্ট্রাল-রেপো থেকে কোনও নির্দিষ্ট গ্রুপের শিল্পকর্মগুলির জন্য আপডেটগুলি পরীক্ষা করার চেষ্টা বন্ধ করার জন্য আমি কীভাবে মাভেনকে পেতে পারি?


126

আমি মোটামুটি বড় মাভেন প্রকল্পে কাজ করছি। আমাদের কাছে প্রায় 70 বা তার বেশি স্বতন্ত্র শৈল্পিকাগুলি রয়েছে যা ভাগ করে নেওয়া কোডের দুটি লাইব্রেরিতে এবং সম্ভবত এটি ব্যবহার করে এমন দশটি অ্যাপ্লিকেশনগুলিতে বিভক্ত। এই সমস্ত আইটেম নেমস্পেসে থাকে com.mycompany.*

বেশিরভাগ সময় আমরা স্ন্যাপশট বিল্ডগুলির বিরুদ্ধে চলেছি। সুতরাং একটি অ্যাপ্লিকেশনটির পুরো বিল্ড করার জন্য, আমি প্রথমে গ্রন্থাগার প্রকল্পগুলি তৈরি করতে পারি যাতে সেগুলি আমার স্থানীয় সংগ্রহস্থলে ইনস্টল করা হয় (যেমন, বলুন mycompany-libname-2.4-SNAPSHOT.jar)।

সমস্যাটি হ'ল আমি যখন তখন অ্যাপ্লিকেশনগুলি তৈরি করি। কিছু কারণে, মাভেন সমস্ত mycompany-*-SNAPSHOT.jarনিদর্শনগুলির জন্য আপডেটের জন্য প্রধান দুটি পাবলিক রিপোজিটরিগুলি (ম্যাভেন-নেট-রেপো এবং জাভা-নেট-রেপো) চেক করতে চান । অবশ্যই সেগুলি পাওয়া যায় না, এবং শেষ পর্যন্ত আমার স্থানীয় সংগ্রহস্থলে আমি যে সংস্করণগুলি তৈরি করেছিলাম তার সবগুলিই শেষ হয়ে যায়, তবে আমি চাইবেন মাভেন এটি করা বন্ধ করুন কারণ (ক) এটি আমাকে খারাপ নেট হিসাবে মনে করছে। যে জিনিসগুলি কখনই থাকবে না সেগুলির জন্য এই সংগ্রহস্থলগুলি ক্রমাগত চেক করার জন্য, এবং (খ) এটি আমার বিল্ডিং প্রক্রিয়াতে কিছু অযৌক্তিক এবং বিরক্তিকর নেটওয়ার্ক বিলম্বকে যুক্ত করে।

আমি বেশিরভাগ সময় অফলাইন মোডে এটিকে ঘিরে কাজ করার জন্য চালিত হয়েছি, তবে এটি আদর্শ নয় কারণ মাঝেমধ্যে কোনও পাবলিক লাইব্রেরির উপর নির্ভরতা আপডেট হয়ে যায়। সুতরাং আমি যা খুঁজছি তার সমাধান যা মাভেনকে নির্দিষ্ট শর্তগুলির সাথে মেলে এমন নিদর্শনগুলির জন্য প্রদত্ত ভান্ডারগুলি থেকে আপডেটগুলি পরীক্ষা না করে - এই ক্ষেত্রে, আমি খুশি হব যদি মাভেন এসএনএপিএসএইচটি সংস্করণ বা শিল্পকর্মগুলির মধ্যে কোনটি উপেক্ষা না করে থাকে I'd com.mycompanyনামস্থান।

উত্তর:


34

আপডেট পলিসি ট্যাগটি আমার পক্ষে কাজ করে নি। তবে ধনী বিক্রেতা উল্লেখ করেছেন যে স্ন্যাপশটগুলি যেভাবেই অক্ষম করা উচিত তাই আমি আরও তাকাতে এবং লক্ষ্য করেছি যে আমার সেটিংস.এক্সএমএল-এ যুক্ত হওয়া অতিরিক্ত ভাণ্ডারটি আসলে সমস্যা তৈরি করছে। আমার সেটিংসে এই সঞ্চিত্রে স্ন্যাপশট বিভাগটি যুক্ত করে।

<repository>
    <id>jboss</id>
    <name>JBoss Repository</name>
    <url>http://repository.jboss.com/maven2</url>
    <snapshots>
        <enabled>false</enabled>
    </snapshots>
</repository>

উত্তরের জন্য আপনাকে অনেক ধন্যবাদ। এটি শেষ পর্যন্ত আমাকে সাহায্য করেছিল। আমি কোনও সংগ্রহস্থলের জন্য স্ন্যাপশট ডাউনলোড নিয়ে কিছু ঝামেলা করছি। ডাউনলোডগুলি এমনকি পুলিশ কখনও ফাঁসি ছিল না hanging এখন স্ন্যাপশটগুলি ডাউনলোড করা হয়নি যা আমি চেয়েছিলাম wanted
উলফ্রোমা

163

এছাড়াও, আপনি ব্যবহার করতে পারেন -oবা --offlinemvn কমান্ড লাইন যা "অফলাইন মোড" মধ্যে ম্যাভেন করা হবে তাই এটা আপডেট পরীক্ষা করবে না। আপনার স্থানীয় রেপোতে ইতিমধ্যে নির্ভরতা পেতে সক্ষম না হওয়া সম্পর্কে আপনি কিছু সতর্কতা পাবেন তবে কোনও বড় বিষয় নয়।


8
এটি প্রকাশিত নির্ভরতা ডাউনলোড করা থেকে মাভেনকে থামিয়ে দেবে। আপডেটের জন্য
স্নাপশট

2
এটি পরিষ্কারভাবে মূল প্রশ্নের উত্তর নয়! এর এত উপায়ে কীভাবে থাকতে পারে ??? ওপি স্পষ্টতই লিখেছিল যে তিনি অফলাইন মোডে মাভেন চালানোর চেষ্টা করেছিলেন তবে এটি তাঁর উদ্দেশ্যে আদর্শ নয়!
হনজা জিদেক

95

ম্যাভেনের পাশাপাশি এখন পাওয়া যায় এমন কিছু

mvn goal --no-snapshot-updates

বা সংক্ষেপে

mvn goal -nsu

3
কোনও এসবিটি লোকেরা এখানে অবতরণ করার ক্ষেত্রে: set offline := trueসেশনে বা offline := trueভিতরে build.sbt

5
এছাড়াও, nsuবিকল্পটি v 3.0.3 এ বিভক্ত হয়েছে (দেখুন এমএনজি -5064 )। এই বিকল্পটি নির্ভরযোগ্যতার সাথে ব্যবহার করতে, আপনাকে কমপক্ষে v। 3.0.4 বা v। 3.0.5 এ আপগ্রেড করতে হবে
আশুতোষ জিন্দাল

চমত্কার সেরা
এন্টজভাদেব

32

আপডেট: আপনার প্রকল্পগুলি SNAPSHOTs হওয়ায় আমার সম্ভবত এটি শুরু করা উচিত ছিল। এটি SNAPSHOT শব্দার্থবিজ্ঞানের অংশ যা মাভেন প্রতিটি বিল্ডের আপডেটগুলি পরীক্ষা করে দেখবে। একটি SNAPSHOT হওয়ার অর্থ এটি পরিবর্তনশীল এবং পরিবর্তনের সাপেক্ষে আপডেটগুলি পরীক্ষা করা উচিত। তবে এটি উল্লেখ করার মতো যে ম্যাভেন সুপার পিওএম স্ন্যাপশটগুলি অক্ষম করার জন্য কেন্দ্রীয়কে কনফিগার করে, সুতরাং আপনার নিজের পম / সেটিংসে ওভাররাইড না করলে মাভেনকে কখনই কেন্দ্রীয়ভাবে এসএনএপিএসএইচএসটগুলির জন্য আপডেটগুলি পরীক্ষা করা উচিত নয়।


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

আপনার সেটিংস.এক্সএমএলে আপনি আপনার অভ্যন্তরীণ সংগ্রহস্থলকে কেন্দ্রীয় হিসাবে মিরর হিসাবে সেট করতে এমন কিছু যুক্ত করবেন:

<mirrors>
  <mirror>
    <id>ibiblio.org</id>
    <name>ibiblio Mirror of http://repo1.maven.org/maven2/</name>
    <url>http://path/to/my/repository</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
</mirrors>

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


আরও সাধারণ সমাধান যদি আপনি কেবল স্থানীয় সংগ্রহস্থলগুলির সাথে কাজ করছেন তবে কেন্দ্রীয় সংগ্রহশালার জন্য আপডেট পলিসিকে "কখনই নয়" হিসাবে সেট করতে হবে, এর অর্থ মাভেন কেবলমাত্র সেই সব শিল্পকর্ম যাচাই করবে যা ইতিমধ্যে স্থানীয় সংগ্রহস্থলে নেই। মাভেনকে আপডেটগুলি পরীক্ষা করতে বাধ্য করার জন্য -U সুইচ ব্যবহার করার পরে এটি কমান্ড লাইনে ওভাররাইড করা যেতে পারে।

আপনি নীচে সংগ্রহস্থল কনফিগার করবেন (আপনার পোমে বা সেটিংস.এক্সএমএলে একটি প্রোফাইল)

<repository>
  <id>central</id>
  <url>http://repo1.maven.org/maven2</url>
  <updatePolicy>never</updatePolicy>
</repository>

আমাদের কাছে ইতিমধ্যে একটি কেন্দ্রীয় ভান্ডার রয়েছে, তবে অবশ্যই আমরা এটিতে স্ন্যাপশট বিল্ডগুলি প্রকাশ করি না, সম্ভবত সম্ভবত আমি এখনও জায়গায় প্রক্সি / আয়নাতে ব্যর্থ আপডেট চেকগুলি পেয়েছি - আমি মাভেনকে পাওয়ার উপায় খুঁজছি এই নিদর্শনগুলির জন্য কোনও আপডেটের জন্য চেক না করা।
টিম গিলবার্ট

1
আপনার SNAPSHOTs এর জন্য আপনার কেন্দ্রীয় সংগ্রহশালায় একটি লজিকাল সংগ্রহস্থল স্থাপন করাও মূল্যবান। এর অর্থ এগুলি আপনার বিকাশকারীদের মধ্যে ভাগ করা যায় এবং আপনার সকলকে স্থানীয়ভাবে এটি তৈরি করতে হবে না। তারপরে আপনি যে কোনও SNAPSHOT নির্ভরতাগুলি দূরবর্তী সংগ্রহস্থলের দিকে ধাক্কা দেওয়ার সাথে সাথে পরিবর্তনগুলি বেছে নিয়ে আপনি SNAPSHOTs এর সম্পূর্ণ উপকার পাবেন।
ধনী বিক্রেতা

ধন্যবাদ - আপডেটটি পলিসির পতাকাটি ঠিক যেমনটি খুঁজছিলাম তেমন দেখাচ্ছে।
টিম গিলবার্ট

1
সংস্থাগুলি নিদর্শনগুলির বাইরের দিকে যাওয়ার জন্য কোনও অনুরোধ রোধ করতে আপনাকে নীতিগুলি কনফিগার করার অনুমতি দেয়।
ব্রায়ান ফক্স 18

এখানে এক্সএমএল স্নিপেটটি এখন পুরানো। updatePolicyউপাদান অধীন যায় snapshotsবা releasesউপাদান। দেখুন: maven.apache.org/settings.html
জেফ ইভানস

5

খুব সহজ :

আপনার সুপার POM পিতা বা সেটিং.এক্সএমএল এ ব্যবহার করুন use

        <repository>
        <id>central</id>
        <releases>
            <updatePolicy>never</updatePolicy>
        </releases>
        <snapshots>
            <updatePolicy>never</updatePolicy>
        </snapshots>
        <url>http://repo1.maven.org/maven2</url>
        <layout>legacy</layout>
    </repository>

এটা আমার টিপস


0

আমার এর মতো কিছুটা সমস্যা ছিল,

<repository>
    <id>java.net</id>
    <url>https://maven-repository.dev.java.net/nonav/repository</url>
    <layout>legacy</layout>
</repository>
<repository>
    <id>java.net2</id>
    <url>https://maven2-repository.dev.java.net/nonav/repository</url>
</repository>

আপডেটটি পলিসিকে "কখনই নয়" এ সেট করে কাজ করে না। এই রেপোগুলি সরিয়ে ফেলাটাই আমি এটি সমাধান করেছি। PS: আমি ওয়েব পরিষেবাদি সম্পর্কে এই টিউটোরিয়ালটি অনুসরণ করছিলাম (বিটিডাব্লু, সম্ভবত জাভা জন্য ডাব্লুএস জন্য সেরা টিউটোরিয়াল)


1
আপনি ইন্টেলিজ ব্যবহার করছেন? কারণ ইন্টেলিজ + মাভেন = আপডেটপোলসি উপেক্ষা করুন। বাগ রিপোর্টটি দেখুন youtrack.jetbrains.com/issue/IDEA-76869
মানব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.