সমস্ত মেভেন নির্ভরতা একটি ডিরেক্টরিতে ডাউনলোড করে রাখছেন ভান্ডারে নেই?


127

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


2
আইভির ব্যবহার বিবেচনা করুন এবং আপনার যে পিঁপড়ায় বিশ্বাস করা হয় তার সাথে আপনার প্রয়োজনীয় ট্রানজিটিভ নির্ভরতা পরিচালনা পান। বা বুলেট কামড়ান এবং মাভেন ডিরেক্টরি কাঠামো ব্যবহার করুন।
ডেভ নিউটন

আইভির চেষ্টা করেছেন ?
টমাসজ নুরকিউইচ

5
না, তবে আমি এই মুহুর্তে স্যুইচিংয়ের সাথে আমার সমস্ত ধৈর্যটি কাটিয়েছি। সম্ভবত পরের বার. আমি কোডিংয়ে ফিরে যেতে চাই এটা কি ম্যাভেন দিয়ে করা যায়?
chubbsondubs

উত্তর:


260

ম্যাভেন নির্ভরতা প্লাগইন সম্ভাব্য আপনার সমস্যা সমাধান করতে পারে।

আপনি যদি একটি থাকে তাহলে pomনিদিষ্ট সব আপনার প্রকল্পের নির্ভরতা সঙ্গে, আপনি কি সব করতে হবে রান হয়

mvn dependency:copy-dependencies

এবং আপনি target/dependenciesট্রান্সজিটিভ সহ সমস্ত নির্ভরতা সহ ফোল্ডারটি দেখতে পাবেন ।

নীচে থেকে গুস্তাভোর উত্তর যুক্ত করা : নির্ভরতা উত্স ডাউনলোড করতে, আপনি ব্যবহার করতে পারেন

mvn dependency:copy-dependencies -Dclassifier=sources

( অ্যাপাচি মাভেন নির্ভরতা প্লাগইন ডকের মাধ্যমে )।


1
থেক্সএক্স @ রাঘুরাম, আমি এটি বহু যুগ ধরে খুঁজছি।
এসকেলেরে

তবে যদি আমি সমস্ত স্থানীয়তা আমার স্থানীয় রেপোতে অনুলিপি করতে চান? এটি কি এর জন্য ব্যবহার করার কথা? এটি যদি ইতিমধ্যে স্থানীয় রেপোতে থাকে তবে অনুলিপি করবেন না কেন। এটি যাইহোক স্থানীয়।
ses

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

1
একটি পরিষ্কার, সংক্ষিপ্ত এবং সহায়ক উত্তরের জন্য +1 আমি কেবল ওপি হিসাবে একই মাভেন নাচের মধ্য দিয়ে গিয়েছিলাম এবং কেবল জেআর ফাইলের নির্ভরতা পুনরুদ্ধার করতে চেয়েছিলাম। ধন্যবাদ! আমি আশা করি আমি +10 করতে পারি
ব্র্যান্ডন

@ রাঘুরাম প্রযুক্তিগতভাবে আপনি "লক্ষ্য / নির্ভরতা" এর মধ্যে সমস্ত (সমাধান করা) শিল্পকর্ম শেষ করেন। তদ্ব্যতীত, নির্ভরতার "গ্রুপআইডি" স্থানাঙ্ক উপেক্ষা করা হওয়ায় নাম সংঘর্ষের সম্ভাব্য সমস্যা রয়েছে। অন্য কথায়, "নির্ভরতা: অনুলিপি-নির্ভরতা" লেআউট কাঠামো সংরক্ষণ করে না।
whaefelinger

8

@ রঘুরাম উত্তরের ভিত্তিতে , আমি প্রকল্পের নির্ভরতা অনুলিপি করার বিষয়ে একটি টিউটোরিয়াল পেয়েছি , ঠিক:

  1. আপনার প্রকল্পের pom.xmlফাইলটি খুলুন এবং এটি সন্ধান করুন:

    <project>
      [...]
      <build>
        <plugins>
          ...
        </plugins>
      </build>
      [...]
    </project>
  2. এর <plugins> ... </plugins>সাথে প্রতিস্থাপনের চেয়ে :

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
              <overWriteReleases>false</overWriteReleases>
              <overWriteSnapshots>false</overWriteSnapshots>
              <overWriteIfNewer>true</overWriteIfNewer>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  3. এবং কমান্ড লাইনের মধ্যে মাভেনকে কল করুন mvn dependency:copy-dependencies

এটি শেষ হওয়ার পরে এটি বর্তমান ডিরেক্টরিতে যেখানে বাস করছে সেখানে সমস্ত নির্ভরতার target/dependencyমধ্যে ফোল্ডার তৈরি করবে ।jarpom.xml


আমি "এমভিএন" কমান্ডটি কোথায় টাইপ করব? মাউন-প্রকল্প-> মাভেন -> রাইট ক্লিক করুন .. ??
বেকড ইনহেল্ফ

যে ফোল্ডারে pom.xmlফাইল চালু আছে সেখানে একটি টার্মিনাল কমান্ড লাইনে ।
ব্যবহারকারী

1
কাজ হয়নি। আমি মনে করি মাভেন কেবলমাত্র একটি প্লাগইন হিসাবে ইনস্টল করা আছে। আমাকে ম্যানুয়ালি ম্যাভেনও ডাউনলোড করতে হয়েছিল। তারপর mvn dependency:copy-dependenciesকাজ!
বেকড ইনহেলফ

8

মাভেনকে কীভাবে ব্যবহার করতে হয় সে সম্পর্কে আমি অবশেষে ভেবেছিলাম। Eclipse এর মধ্যে থেকে একটি নতুন মাভেন প্রকল্প তৈরি করুন।

মাভেন ডাউনলোড করুন, সংরক্ষণাগারটি বের করুন, /binফোল্ডারে পাথ যুক্ত করুন।

কমান্ড-লাইন থেকে ইনস্টল বৈধ করুন mvn -v(চলুন সংস্করণ এবং জাভা ইনস্টল পাথ প্রিন্ট করবে)

প্রকল্পের মূল ফোল্ডারে (যেখানে pom.xmlঅবস্থিত) পরিবর্তন করুন এবং চালান:

mvn dependency:copy-dependencies

সমস্ত জার ফাইলগুলি এতে ডাউনলোড করা হয় /target/dependency

অন্য আউটপুট ডিরেক্টরি সেট করতে:

mvn dependency:copy-dependencies -DoutputDirectory="c:\temp"

এখন pom.xML পরিবর্তন করে সমস্ত নির্ভরতা ডাউনলোডের জন্য এই ম্যাভেন-প্রকল্পটি পুনরায় ব্যবহার করা সম্ভব

বিল্ড পাথ -> বিল্ড পাথ -> লাইব্রেরিগুলি কনফিগার করুন -> জেআর যুক্ত করে জাভা প্রকল্পে জার যুক্ত করুন ..


1
অগত্যা একটি গ্রহণ প্রকল্প হতে হবে না। আমি জাভা ডেকম্পিলারের একটি জার ফাইল খুললাম এবং একটি ফাঁকা ফোল্ডারে pom.xML অনুলিপি করেছি। mvn dependency:copy-dependenciesআপনি সেই ফোল্ডারটি থেকে বর্ণিত হিসাবে আমি কল করেছি এবং সমস্ত নির্ভরশীল জার ফাইলগুলি খুব ভালভাবে একটি একক ফোল্ডারে অনুলিপি করে পেয়েছি।
বার্নহার্ড ডাবলারের


2

${MAVEN_HOME}/confডিরেক্টরিতে কিছু কনফিগার ফাইল রয়েছে কিনা দয়া করে তা পরীক্ষা করে দেখুন settings.xml। এই ফাইলগুলি .m2ফোল্ডার থেকে সেটিংস ওভাররাইড করে এবং সেই কারণে, সংগ্রহস্থলীর ফোল্ডারটি .m2দৃশ্যমান বা বাতিল হতে পারে না।

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