কীভাবে অন্য ডিরেক্টরি থেকে মাভেন চালাবেন (সিডি ছাড়াই প্রজেক্ট ডায়ার)?


248

ধরুন আমার মভেন প্রকল্পটি অবস্থিত /some/location/projectএবং আমার বর্তমান অবস্থানটি হল /another/location/আমি কীভাবে প্রকল্পের অবস্থানে পরিবর্তন না করেই মাভেন বিল্ড চালাতে পারি cd /some/location/project?


4
@খামারবায়েস - আমি কয়েকটি শেল স্ক্রিপ্ট ব্যবহার করে বিল্ড এবং মোতায়েন স্বয়ংক্রিয় করার চেষ্টা করছি এবং দির পরিবর্তন করতে সিডি সর্বদা ব্যবহার করা সোজা নয়।
আলী শাকিবা

@khmarbaise - আপনি এক ডিরেক্টরিতে বা তার কাছাকাছি একাধিক ফাইল বা ফোল্ডারগুলি উল্লেখ করতে চাইতে পারেন, তবে আপনার পোম এবং ফাইলগুলি এতে উল্লিখিত হয়েছে another
জৈঙ্গদেব

উত্তর:


432

আপনি প্যারামিটারটি ব্যবহার করতে পারেন -fএবং আপনার পম ফাইলের পথ নির্দিষ্ট করতে পারেন , যেমনmvn -f /path/to/pom.xml

এটি maven চালায় "যেন" এটি /path/toওয়ার্কিং ডিরেক্টরিতে ছিল।


39
না, -f মাভেনকে সেই নির্দিষ্ট পম দিয়ে শুরু করে, এবং সংজ্ঞা অনুসারে পোমটি যেখানে ডাইরেক্টরিটি হয় তা হ'ল মাভেনের ওয়ার্কিং ডিরেক্টরি। আমি এটি আমার সিআই-সার্ভারে সাব-ডিরেক্টরিতে নির্দিষ্ট মডিউল তৈরি করতে ব্যবহার করি এবং আমি আপনাকে আশ্বাস দিতে পারি যে এটি কার্যকর can
dunni

15
আপেক্ষিক পাথের জন্য একটি বিন্দু ব্যবহার করুন। উদাহরণস্বরূপ./path/pom.xml
স্নেকস

3
ডুনি যেমন বলে, এটি কাজ করে না। বর্তমান দির আপনি যেখানে আছেন। আপনি কেবল অন্য দিরে পম ব্যবহার করছেন। মাভেন এটি সমর্থন করে না।
কুয়াশা

1
java.lang.IllegalArgumentEception: প্যারামিটার 'ডিরেক্টরি' কোনও ডিরেক্টরি নয়
দামির ওলেজার

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

15

আমি মনে করি না মাভেন এটি সমর্থন করে। আপনি যদি ইউনিক্সে থাকেন এবং আপনার বর্তমান ডিরেক্টরিটি ছেড়ে যেতে না চান তবে আপনি একটি ছোট শেল স্ক্রিপ্ট, একটি শেল ফাংশন, বা কেবল একটি উপ-শেল ব্যবহার করতে পারেন:

user@host ~/project$ (cd ~/some/location; mvn install)
[ ... mvn build ... ]
user@host ~/project$

বাশ ফাংশন হিসাবে (যা আপনি আপনার ~ / .bashrc এ যুক্ত করতে পারেন):

function mvn-there() {
  DIR="$1"
  shift
  (cd $DIR; mvn "$@")     
} 

user@host ~/project$ mvn-there ~/some/location install)
[ ... mvn build ... ]
user@host ~/project$

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

শুভেচ্ছা সহ


4
চমৎকার। mvn -f পরম সন্তানের পোমের উল্লেখের জন্য আপেক্ষিক পথ ব্যবহার করে মাল্টিমিডুল প্রকল্পগুলির সাথে কাজ করে না। ধন্যবাদ, আমি যা খুঁজছিলাম
redochka

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


0

আপনি এটি চেষ্টা করতে পারেন:

pushd ../
maven install [...]
popd
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.