কোন সেটিংস.এক্সএমএল ফাইল মাভেন ব্যবহার করছে তা নির্ধারণের জন্য ম্যাভেন কমান্ড


278

কোন সেটিংস.এক্সএমএল ফাইল মাভেন তুলে নিচ্ছে তা নির্ধারণ করতে আমি কীভাবে কমান্ড লাইনটি ব্যবহার করব?

উত্তর:


333

ম্যাভেন -X বিকল্প (ডিবাগ) দিয়ে শুরু করুন এবং আউটপুটের শুরুটি পরীক্ষা করুন। এর মতো কিছু হওয়া উচিত:

...
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from c:\....\apache-maven-3.0.3\conf\settings.xml
[DEBUG] Reading user settings from c:\....\.m2\settings.xml
[DEBUG] Using local repository at C:\....\repository
...

(মূল ডিরেক্টরি নামগুলি আমার দ্বারা সরানো হয়েছে)


10
ম্যাভেন 3 প্রকাশের আগ পর্যন্ত সম্ভবত এটি ডিবাগ আউটপুটটিতে ছিল না, তবে আপনার পোস্টটি প্রায় 2.5 বছর পরে অবশেষে আমি সঠিক উত্তরটি খুঁজছিলাম (এটি দেখার জন্য 6 মাসের বিলম্বের জন্য দুঃখিত)।
হার্শওয়ার

Maven2.x আমি যে ম্যাভেনটি ব্যবহার করছিলাম সে সংস্করণটি -B পতাকা ব্যবহার করার সময় এই গুরুত্বপূর্ণ বিবরণটি প্রদর্শন করে নি। ... দুর্ভাগ্যক্রমে, আপনি যদি জেনকিন্স সার্ভারের সাথে কী চলছে তা ডিবাগ করার চেষ্টা করছেন।
কগনিটিএক্লেভস

168

ক্লিটাসের (সঠিক) উত্তরে আপনার মন্তব্য থেকে বোঝা যাচ্ছে যে এখানে একাধিক মাভেন সেটিংস ফাইল জড়িত রয়েছে।

ম্যাভেন সর্বদা এক বা দুটি সেটিংস ফাইল ব্যবহার করে। ($ {M2_Home} /conf/settings.xML) এ সংজ্ঞায়িত গ্লোবাল সেটিংস সর্বদা প্রয়োজন। ব্যবহারকারী সেটিংস ফাইল (r. {user.home ome /। M2 / settings.xML এ সংজ্ঞায়িত) isচ্ছিক। ব্যবহারকারী সেটিংসে সংজ্ঞায়িত যে কোনও সেটিংস সংশ্লিষ্ট বৈশ্বিক সেটিংসের চেয়ে বেশি প্রাধান্য পাবে।

আপনি কমান্ড লাইন থেকে গ্লোবাল এবং ব্যবহারকারীর সেটিংসের অবস্থানটি ওভাররাইড করতে পারেন, নিম্নলিখিত উদাহরণটি বিশ্বব্যাপী সেটিংস সি: \ গ্লোবাল \ সেটিংস.এক্সএমএল এবং ব্যবহারকারী সেটিংস সি: \ ব্যবহারকারী \ সেটিংস.এক্সএমএল সেট করবে :

mvn install --settings c:\user\settings.xml 
    --global-settings c:\global\settings.xml

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


1
এটি দুর্দান্ত হবে যদি আমরা একাধিক ব্যবহারকারীর সেটিংস.এক্সএমএল সরবরাহ করতে পারি, তাই আমরা উদাহরণস্বরূপ এগুলিকে বিভিন্ন প্রকল্পের সাথে ব্যবহার করতে পারি। আমি জানি যে আমরা একটি প্রোফাইল ব্যবহার করতে পারি। তবে আলাদা ফাইল থাকলে এটি অনেক ভাল। এটা সম্ভব না, তাই না ?! চিয়ার্স!
29:55

আমি একবারে ফাইলটির সাথে টেম্পারিং না করে আমার ব্যবহারকারী সেটিংসকে ওভাররাইড করার সমাধানের সন্ধান করছিলাম। সুতরাং আমি ব্যবহারকারীর সেটিংসের জন্য কেবলমাত্র বিশ্বব্যাপী ফাইলটি ব্যবহার করেছি। অর্থ - সেটেটিং সি: \ গ্লোবাল \ সেটিংস.এক্সএমএল এভাবে ব্যবহারকারী ফাইল বাদ দেওয়া হয়েছে
এমএসপি

@ ডেপপট, পার্টিতে দেরী হয়েছে তবে একাধিক প্রোফাইল আপনি সংজ্ঞায়িত করতে পারেন এবং কিছু কাস্টম 'ট্রিগার': maven.apache.org/settings.html# অ্যাক্টিভেশন
অবিভাজ্য

এটি সর্বদা বর্তমান ফোল্ডারে পম চেয়ে থাকে। "আপনি যে লক্ষ্যটি নির্দিষ্ট করেছেন তার সম্পাদন করার জন্য একটি প্রকল্পের প্রয়োজন তবে এই ডিরেক্টরিতে (/) কোনও পিওএম নেই। দয়া করে আপনি মাভেনকে সঠিক ডিরেক্টরি থেকে অনুরোধ করেছেন কিনা তা যাচাই করুন - -> [সহায়তা 1]"
নিলেশ

136

আপনি আপনার ব্যবহারকারী এবং বিশ্বব্যাপী সেটিংস ফাইলগুলির বিষয়বস্তু জানানোর জন্য maven সহায়তা প্লাগইন ব্যবহার করতে পারেন ।

mvn help:effective-settings

মাভেনকে সম্মিলিত বৈশ্বিক এবং ব্যবহারকারীর সেটিংস আউট করতে বলবে ।


এটি আমার পুরানো মেভেন রেপো আপডেট করতে সহায়তা করে repo1.maven.org/maven2 অনুসন্ধানেMaven.org
রিকার্ডো

40

এটি মাভেনের কনফিগারেশন ফাইল। এটি দুটি স্তরে নির্দিষ্ট করা যেতে পারে:

  1. ব্যবহারকারী স্তর। এই সেটিংস.এক্সএমএল ফাইলটি একটি একক ব্যবহারকারীর জন্য কনফিগারেশন সরবরাহ করে এবং সাধারণত $ {user.home। /। M2 / settings.xML এ সরবরাহ করা হয়।

              NOTE: This location can be overridden with the CLI option:
    
              -s /path/to/user/settings.xml
    
  2. গ্লোবাল স্তর। এই সেটিংস.এক্সএমএল ফাইলটি কোনও মেশিনে সমস্ত মাভেন ব্যবহারকারীদের জন্য কনফিগারেশন সরবরাহ করে (ধরে নিবেন যে তারা সবাই একই ম্যাভেন ইনস্টলেশন ব্যবহার করছেন)। এটি সাধারণত $ {maven.home} /conf/settings.xML এ সরবরাহ করা হয়।

              NOTE: This location can be overridden with the CLI option:
    
              -gs /path/to/global/settings.xml

1
সম্পত্তিটি এম 2_হোম, ম্যভেনহোম নয়
ধনী

এটা কোন ব্যাপার না। আপনি যদি maven.home ব্যবহার করে পরিবেশের পরিবর্তনশীল সেট করে রাখেন তবে কোনও সমস্যা হবে না
তৃতীয়

24

M2_HOMEবিশ্বব্যাপী এক জন্য এনভায়রনমেন্ট ভেরিয়েবল। সেটিংস উল্লেখ দেখুন :

settingsউপাদান settings.xmlফাইল মান যা বিভিন্ন উপায়ে, মত ম্যাভেন সঞ্চালনের কনফিগার নির্ধারণ করতে ব্যবহৃত উপাদানগুলি রয়েছে pom.xml, কিন্তু কোনো নির্দিষ্ট প্রকল্প একত্রিত করা উচিত নয়, অথবা একটি শ্রোতা বিতরণ। এর মধ্যে স্থানীয় সংগ্রহস্থল অবস্থান, বিকল্প দূরবর্তী সংগ্রহস্থল সার্ভার এবং প্রমাণীকরণের তথ্যের মতো মান অন্তর্ভুক্ত রয়েছে। দুটি অবস্থান রয়েছে যেখানে একটি সেটিংস.এক্সএমএল ফাইল থাকতে পারে:

  • মাভেন ইনস্টল করুন: $M2_HOME/conf/settings.xml
  • ব্যবহারকারীর ইনস্টল: ${user.home}/.m2/settings.xml

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

3
+1 উত্তর, ক্লিটাস। আপনার "সেটিংস রেফারেন্স" লিঙ্কটি থেকে পরবর্তী লাইনটি উল্লেখ করা সার্থক বলে মনে করি:the former settings.xml are also called global settings, the latter settings.xml are referred to as user settings. If both files exists, their contents gets merged, with the user-specific settings.xml being dominant.
কেভিন মেরেডিথ

ব্যক্তিগত সংগ্রহস্থলগুলি আমাকে এত কষ্ট দেয় তা খুঁজে পাওয়ার জন্য একটি মেশিনের নির্দিষ্ট কনফিগারেশন থাকা দরকার। আমি বুঝতে পারি এটি জাভা ইকোসিস্টেমের স্থিতিশীল অবস্থা তবে এটি মারাত্মকভাবে অপ্রণয়নযোগ্য বিল্ড সেটআপগুলির দিকে পরিচালিত করে।
jpierson

24

মাভেন পছন্দসই সেটিংস ব্যবহার করছে কিনা তা নির্ধারণ করার জন্য দ্রুত এবং নোংরা পদ্ধতি x xml এর এক্সএমএলকে অকার্যকর করে দেবে এবং সেটিংস.এক্সএমএল প্রয়োজন এমন কিছু নিরাপদ ম্যাভেন কমান্ড চালাবে।

যদি এটি এই সেটিংস.এক্সএমএলটি পড়ে থাকে তবে মাভেন একটি ত্রুটিটি রিপোর্ট করেছেন: "সেটিংস.এমএমএল পড়তে ত্রুটি ..."


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