আমি কি জারগুলি ম্যাগেন 2 ইনস্টল না করে ক্লাসপথ তৈরি করতে যুক্ত করতে পারি?


700

ম্যাভেন 2 উন্নয়নের পরীক্ষামূলক / দ্রুত এবং নোংরা মক-আপ পর্যায়ে আমাকে ক্রেজিড ড্রাইভ করছে।

আমার একটি pom.xmlফাইল রয়েছে যা আমি যে ওয়েব-অ্যাপ ফ্রেমওয়ার্কটি ব্যবহার করতে চাই তার জন্য নির্ভরতা নির্ধারণ করে এবং আমি দ্রুত সেই ফাইল থেকে স্টার্টার প্রকল্পগুলি তৈরি করতে পারি gene যাইহোক, কখনও কখনও আমি একটি তৃতীয় পক্ষের লাইব্রেরিতে লিঙ্ক করতে চাই যা ইতিমধ্যে কোনও pom.xmlফাইল সংজ্ঞায়িত করা হয় না , তাই pom.xmlহাতের সাহায্যে 3 য় পক্ষের লাইবের জন্য ফাইলটি তৈরি করে ইনস্টল করুন এবং আমার উপর নির্ভরতা যুক্ত করুন pom.xml, আমি চাই মাভেনকে বলার জন্য: "আমার সংজ্ঞায়িত নির্ভরতা ছাড়াও, যে কোনও জার /libখুব বেশি রয়েছে তা অন্তর্ভুক্ত করুন ।"

মনে হচ্ছে এটি সহজ হওয়া উচিত, তবে যদি এটি হয় তবে আমি কিছু মিস করছি।

এটি কীভাবে করবেন সে সম্পর্কে কোনও পয়েন্টার প্রশংসিত হয়। সংক্ষেপে, যদি কোনও /libডিরেক্টরিতে মভেনকে নির্দেশ করার কোনও সহজ উপায় থাকে এবং সহজেই pom.xmlসমস্ত বদ্ধ জারগুলি একটি একক নির্ভরতার সাথে ম্যাপ করা থাকে যা আমি তারপরে নাম / ইনস্টল করতে পারি এবং একটি পতনের সাথে লিঙ্কও যথেষ্ট।


আপনি যদি নেটবিয়ানদের ব্যবহার করছেন তবে এই পদক্ষেপগুলি অনুসরণ করুন: [মাভেন এম্বেড থাকা নেটবিন ব্যবহার করে আমি কীভাবে মভেন সংগ্রহস্থলগুলিতে মডিউল ইনস্টল করব?] [1] [1]: স্ট্যাকওভারফ্লো.com
রজত গুপ্ত

1
আমি উল্লেখ করতে চাই যে এই লিঙ্কটি stackoverflow.com/a/339874/530153 একবারে একবারে জারগুলি ইনস্টল করার জন্য কাজ করছে বলে মনে হচ্ছে।
পল

উত্তর:


600

জনপ্রিয় পদ্ধতির সমস্যা

ইন্টারনেটে আপনি যে উত্তরগুলি সন্ধান করতে পারবেন তার সর্বাধিক উত্তরগুলি আপনাকে স্থানীয় স্থানীয় সংগ্রহস্থলের উপর নির্ভরতা ইনস্টল করতে বা "সিস্টেম" স্কোপ নির্দিষ্ট করে pomএবং আপনার প্রকল্পের উত্সের সাথে নির্ভরতা বন্টন করার পরামর্শ দেয়। তবে এই উভয় সমাধানই ত্রুটিযুক্ত।

আপনার কেন "স্থানীয় রেপো ইনস্টল করুন" পদ্ধতির প্রয়োগ করা উচিত নয়

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

আপনার "সিস্টেম স্কোপ" পদ্ধতির প্রয়োগ করা উচিত নয় কেন

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

স্ট্যাটিক ইন-প্রজেক্ট রিপোজিটরি সমাধান

এটি আপনার পরে রাখার পরে pom:

<repository>
    <id>repo</id>
    <releases>
        <enabled>true</enabled>
        <checksumPolicy>ignore</checksumPolicy>
    </releases>
    <snapshots>
        <enabled>false</enabled>
    </snapshots>
    <url>file://${project.basedir}/repo</url>
</repository>

x.y.zমাভেনের ফর্মের একটি গ্রুপ আইডি সহ প্রতিটি শিল্পকর্মের জন্য শিল্পকর্মগুলির সন্ধানে আপনার প্রকল্প দিরের নীচের অবস্থানটি অন্তর্ভুক্ত করবে:

repo/
| - x/
|   | - y/
|   |   | - z/
|   |   |   | - ${artifactId}/
|   |   |   |   | - ${version}/
|   |   |   |   |   | - ${artifactId}-${version}.jar

এ সম্পর্কে আরও বিস্তারিত জানাতে আপনি এই ব্লগ পোস্টটি পড়তে পারেন ।

প্রকল্প রেপো ইনস্টল করতে মাভেন ব্যবহার করুন

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

mvn install:install-file -DlocalRepositoryPath=repo -DcreateChecksum=true -Dpackaging=jar -Dfile=[your-jar] -DgroupId=[...] -DartifactId=[...] -Dversion=[...]

আপনি যদি এই পদ্ধতির চয়ন করেন তবে আপনি এখানে রেপোজিটরি ঘোষণাকে সহজ করতে পারবেন pom:

<repository>
    <id>repo</id>
    <url>file://${project.basedir}/repo</url>
</repository>

একটি সহায়ক স্ক্রিপ্ট

যেহেতু প্রতিটি লাইবের জন্য ইনস্টলেশন কমান্ড কার্যকর করা বিরক্তিকর এবং স্পষ্টতই ত্রুটিযুক্ত প্রবণ, তাই আমি একটি ইউটিলিটি স্ক্রিপ্ট তৈরি করেছি যা স্বয়ংক্রিয়ভাবে সমস্ত libফটোগুলি থেকে একটি প্রকল্পের সংগ্রহস্থলে ইনস্টল করে দেয় , এবং স্বয়ংক্রিয়ভাবে সমস্ত মেটাডেটা (গ্রুপআইডি, আর্টিফ্যাক্টআইডি এবং ইত্যাদি) সমাধান করে from ফাইলের নাম। স্ক্রিপ্টটি আপনার অনুলিপিটি কপির পেস্ট করার জন্য নির্ভরতা এক্সএমএল প্রিন্ট করে pom

আপনার লক্ষ্য প্যাকেজে নির্ভরতা অন্তর্ভুক্ত করুন

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

এই সমস্যাটিকে হারাতে আমি আপনার লক্ষ্য প্যাকেজে এই নির্ভরশীলতাগুলি অন্তর্ভুক্ত করার পরামর্শ দিচ্ছি। এটি আপনি এসেম্বলি প্লাগইন বা ওয়ানজার প্লাগইন দিয়ে আরও ভাল করতে পারেন । ওয়ানজারে সরকারী দস্তাবেজগুলি উপলব্ধি করা সহজ।


3
আমি সবসময় ধরে নিয়েছিলাম আপনি প্রকল্পে একটি সংগ্রহশালা তৈরি করতে পারবেন, শেষ পর্যন্ত এটি নিশ্চিত করেছেন, দুর্দান্ত!
albfan

19
দুটি বিষয় লক্ষণীয়: 1) আমি উইন্ডোজটিতেও একটি আরএফসি-সম্মতিযুক্ত ইউআরএল পেতে "ফাইল: // {{प्रोजेक्ट.বেসেডির} / রেপো" এর পরিবর্তে "$ {प्रोजेक्ट.বেসিউরি} রেপো" ব্যবহার করার পরামর্শ দিই। 2) আপনি যদি আপনার প্রকল্পটিকে সাবমোডিয়ুলগুলিতে গঠন করেন তবে এই পদ্ধতিটি ব্যর্থ বলে মনে হচ্ছে কারণ module {project.baseUri the মডিউলটির উপ-ডিরেক্টরিতে সমাধান হয়ে গেছে। এই সমস্যাটি কীভাবে সমাধান করবেন?
অলিভার হানাপ্পি

8
এটি আমাকে প্রায় সেখানে পেয়েছে - তবে নিকিতার স্ক্রিপ্টটি আমার কাছে রাখা খারাপ জেআর ফাইলগুলির সাথে খুব চতুর হওয়ার চেষ্টা করেছিল। সুতরাং আমি একটি সরলিকৃত সংস্করণ তৈরি করেছি যা গ্রুপআইডের জন্য কোনও অনুমান করার মতো করে না: github.com/carchrae/install-to-project-repo
টম ক্র্যাচরে

3
এমন উজ্জ্বল উত্তর !! কিছু করার 2 উপায় আছে, সঠিক উপায় এবং যেভাবে কাজ করে, আপনি স্যার এটি সঠিক উপায়ে করেন!
পান্থরো

1
আপনার জার ফাইল থেকে কীভাবে স্বয়ংক্রিয়ভাবে নিদর্শনগুলি তৈরি করা যায় তা আপনি এখানেও পাবেন: devcenter.heroku.com/articles/local-maven-d dependferences
Dirk

485

কেবল কোড ফেলে দেওয়ার জন্য

স্কোপ == সিস্টেম সেট করুন এবং একটি গ্রুপআইডি, আর্টিফ্যাক্টআইডি এবং সংস্করণ তৈরি করুন

<dependency>
    <groupId>org.swinglabs</groupId>
    <artifactId>swingx</artifactId>
    <version>0.9.2</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/swingx-0.9.3.jar</systemPath>
</dependency>

দ্রষ্টব্য: সিস্টেমের নির্ভরতাগুলি ফলিত জার / যুদ্ধে অনুলিপি করা হয় না
(দেখুন কীভাবে যুদ্ধে সিস্টেম নির্ভরতা অন্তর্ভুক্ত করবেন মভেন ব্যবহার করে )


4
ধন্যবাদ এটি যা আমি চাই তার খুব কাছাকাছি। একক এন্ট্রি হিসাবে তাদের সমস্ত যুক্ত করার কোনও উপায়? বলুন আমার কাছে 10 জারের সাথে / লিবিব আছে, আমি কীভাবে সেগুলিকে কিছুটা যুক্ত করতে পারি, উদাহরণস্বরূপ সিস্টেমপথের জন্য /some/path/*.jar দিয়ে? বা এখনও আমার প্রত্যেককে একটি পরিচিত নির্ভরতা হিসাবে বিবেচনা করতে হবে? তবুও, আমার যা প্রয়োজন তা খুব কাছেই, ধন্যবাদ!

11
এটির মতো একটি সিস্টেমপথ ব্যবহার করুন: "<সিস্টমপথ> $ {ভিত্তিক} /lib/BrowserLauncher2-1_3.jar </systemPath>" $ {ভিত্তিক your আপনার প্রকল্পের মূলকে নির্দেশ করছে।
ফ্রেডেরিক মরিন

4
প্রকল্পটি ব্যবহার করা ভাল। আপনার পথের উপসর্গটি এর মতো: <সিস্টেমেপথ> $ {প্রজেক্ট.বেসেডির} / লাইব / অসাধারণ লিব.জার </ সিস্টমপ্যাথ>
ম্যাথিউ ম্যাককুলো

76
যদিও আমি জানি এই কি ওপি জন্য জিজ্ঞাসা করা হয়েছিল, আমার এখনও নিম্নরেখা করতে চান যে একটি ব্যবহার systemসুযোগ একটি ভয়ঙ্কর অভ্যাস যে হয় জোরালোভাবে নিরুৎসাহিত । দেখুন নির্ভরতা + + সুযোগগুলি
পাসকাল থিভেন্ট

6
@ এমরিওশ মনে রাখবেন দ্রুত পরীক্ষার জন্য প্রশ্নের মূল অভিপ্রায় ছিল। আপনি যদি কোনও এমভিএন প্যাকেজ করতে চান তবে জারটি রেপোতে ইনস্টল করুন।
পাইরোলিস্টিকাল

63

আপনি আপনার প্রকল্পে স্থানীয় সংগ্রহস্থল তৈরি করতে পারেন

উদাহরণস্বরূপ, যদি আপনার libsপ্রকল্পের কাঠামোতে ফোল্ডার থাকে

  • ইন libsফোল্ডারের তোমার মত ডিরেক্টরি কাঠামো তৈরি করা উচিত:/groupId/artifactId/version/artifactId-version.jar

  • আপনার pom.xML এ আপনার সংগ্রহস্থলটি নিবন্ধ করা উচিত

    <repository>
        <id>ProjectRepo</id>
        <name>ProjectRepo</name>
        <url>file://${project.basedir}/libs</url>
    </repository>
    
  • এবং যথারীতি নির্ভরতা যুক্ত করুন

    <dependency>
        <groupId>groupId</groupId>
        <artifactId>artifactId</artifactId>
        <version>version</version>
    </dependency>
    

এটাই সব।

বিস্তারিত তথ্যের জন্য: মাভেনের বাইরের গ্রন্থাগারগুলি কীভাবে যুক্ত করবেন


1
আপনি উত্তর প্রায় সঠিক। গ্রুপআইডকে সার্ভারাল সাব-ডিরেক্টরিতে বিভক্ত করা উচিত।
পিটার ফোর্টুইন

5
অবশ্যই আপনার যদি 'com.foo.bar' এর মতো জটিল গ্রুপআইড থাকে তবে আপনার ডিরেক্টরি কাঠামোটি /com/foo/bar/artifactId/version/artifactId-verion.jar হওয়া উচিত
ড্মিস্ট্রো বোইচেনকো

এটি কি এক বছর আগের উত্তর থেকে উল্লেখযোগ্যভাবে পৃথক ?
জোশুয়া টেলর 21

শেষ ডিরেক্টরিটিতে যেখানে জার ফাইলটি অবস্থিত সেখানে আপনাকে সম্পর্কিত পোম এক্সএমএল ফাইলও যুক্ত করতে হবে।
ফেডেরিকো

30

দ্রষ্টব্য: সিস্টেম স্কোপটি ব্যবহার করার সময় ( এই পৃষ্ঠায় উল্লিখিত ), মাভেনের পরম পাথ প্রয়োজন।

যদি আপনার জারগুলি আপনার প্রকল্পের মূলের নীচে থাকে তবে আপনি আপনার সিস্টেমপথের মানগুলিকে $ {ভিত্তিক with দিয়ে উপস্থাপন করতে চান}


15

এটি আমি যা করেছি তা এটি প্যাকেজ ইস্যুতেও কাজ করে এবং এটি চেক আউট কোডের সাথে কাজ করে।

আমি আমার ব্যবহৃত ক্ষেত্রে প্রজেক্টে একটি নতুন ফোল্ডার তৈরি করেছি repo, তবে বিনা দ্বিধায় ব্যবহার করতে পারিsrc/repo

আমার POM এ আমার একটি নির্ভরতা ছিল যা কোনও পাবলিক মেভেন স্টোরগুলিতে নেই

<dependency>
    <groupId>com.dovetail</groupId>
    <artifactId>zoslog4j</artifactId>
    <version>1.0.1</version>
    <scope>runtime</scope>
</dependency>

আমি তখন নিম্নলিখিত ডিরেক্টরিগুলি তৈরি করে repo/com/dovetail/zoslog4j/1.0.1সেই ফোল্ডারে জার ফাইলটি অনুলিপি করেছি।

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

<?xml version="1.0" encoding="UTF-8" ?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.dovetail</groupId>
    <artifactId>zoslog4j</artifactId>
    <packaging>jar</packaging>
    <version>1.0.1</version>
    <name>z/OS Log4J Appenders</name>
    <url>http://dovetail.com/downloads/misc/index.html</url>
    <description>Apache Log4j Appender for z/OS Logstreams, files, etc.</description>
</project>

দুটি টি alচ্ছিক ফাইল যা আমি তৈরি করি তা হ'ল POM এবং JAR এর জন্য SHA1 চেকসামগুলি অনুপস্থিত চেকসাম সতর্কতাগুলি সরাতে।

shasum -b < repo/com/dovetail/zoslog4j/1.0.1/zoslog4j-1.0.1.jar \
          > repo/com/dovetail/zoslog4j/1.0.1/zoslog4j-1.0.1.jar.sha1

shasum -b < repo/com/dovetail/zoslog4j/1.0.1/zoslog4j-1.0.1.pom \
          > repo/com/dovetail/zoslog4j/1.0.1/zoslog4j-1.0.1.pom.sha1

অবশেষে আমি আমার pom.xML এ নিম্নলিখিত খণ্ডগুলি যুক্ত করেছি যা আমাকে স্থানীয় সংগ্রহস্থলগুলি উল্লেখ করতে দেয়

<repositories>
    <repository>
        <id>project</id>
        <url>file:///${basedir}/repo</url>
    </repository>
</repositories>

হাই, আপনি কি পম ফাইলগুলি স্থানীয় সংগ্রহস্থলে রেখেছিলেন বা আপনার জারের ফাইলগুলির পাশে?
পাইমানখ

উপরের সমাধানটিতে এটি জেআর ফাইলগুলির পাশে ছিল। মনে করি আমি উপরের সমাধানটি পছন্দ করি না কারণ এটি খুব বেশি কাজ।
আর্কিমিডস ট্রাজানো

আমি এখানে পোস্ট করা সমাধানটিকে এখনও পছন্দ করি স্ট্যাকওভারফ্লো.com
আর্কিমিডিস ট্রাজানো

আমি এই পদ্ধতির পছন্দ করি, যদিও আমি স্থানীয় রেপোতে জারটি স্বয়ংক্রিয়ভাবে ইনস্টল করতে মভেন ইনস্টল প্লাগইন ব্যবহার করেছি ।
কার্ল জি

13

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


12

এইভাবে আমরা একটি স্থানীয় জার যুক্ত বা ইনস্টল করি

    <dependency>
        <groupId>org.example</groupId>
        <artifactId>iamajar</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/lib/iamajar.jar</systemPath>
    </dependency>

আমি কিছু ডিফল্ট গ্রুপআইডি এবং আর্টিফ্যাক্ট আইডি দিয়েছি কারণ সেগুলি বাধ্যতামূলক :)


11

স্থানীয় সংগ্রহস্থলে জার ইনস্টল করার জন্য মাভেন ইনস্টল প্লাগইনটির কমান্ড লাইন ব্যবহার রয়েছে, পিওএম বিকল্প but


প্রকৃতপক্ষে, তিনি যা করেন তা হ'ল আপনি যে লাইব্রেরিটি আপনার স্থানীয় সংগ্রহস্থলে আমদানি করছেন তার জন্য আপনাকে পম তৈরি করতে হবে না
ফ্রেডেরিক মরিন

5
-1, কখনও কখনও আপনি এটি ইনস্টল করার সমস্যা ছাড়াই কেবল একটি জার ফাইল যুক্ত করতে চান।
লিওনেল

8

<scope>system</scope>অন্যের দ্বারা ব্যাখ্যা করার কারণে ব্যবহার করা একটি ভয়ানক ধারণা, ফাইলটি আপনার স্থানীয় সংগ্রহস্থলে ম্যানুয়ালি ইনস্টল করা বিল্ডটি অগ্রহণযোগ্য করে তোলে, এবং ব্যবহার <url>file://${project.basedir}/repo</url>করা ভাল ধারণা নয় কারণ (1) যা কোনও সুগঠিত fileইউআরএল নাও হতে পারে (যেমন প্রকল্প যদি অস্বাভাবিক অক্ষরযুক্ত ডিরেক্টরিতে চেক আউট করা হয়), (২) যদি এই প্রকল্পের POM অন্য কারও প্রকল্পের নির্ভরতা হিসাবে ব্যবহার করা হয় তবে ফলাফলটি ব্যবহারযোগ্য নয়।

ধরে নেওয়া যাক আপনি কোনও নিখরচায় কোনও পাবলিক ভান্ডারে আপলোড করতে ইচ্ছুক নন, শিমিয়নের সাহায্যকারী মডিউলের পরামর্শটি কাজ করে। তবে এখন আরও একটি সহজ উপায় আছে ...

সুপারিশ

ব্যবহারের অ ম্যাভেন-বয়াম-ম্যাভেন-plugin । অন্যান্য পদ্ধতির কোনও ত্রুটি-বিচ্যুতি ছাড়াই আপনি যা চেয়েছিলেন ঠিক তা করে।


মাভেন-বাহ্যিক-নির্ভরতা-প্লাগইনটি দেখেছি যদিও নন-মভেন-জার-ম্যাভেন-প্লাগইনটি ব্যবহার করা আরও সহজবোধ্য বলে মনে হচ্ছে।
জেসি গ্লিক

8

আমি এটি করার অন্য একটি উপায় খুঁজে পেয়েছি, এখানে একটি হিরোকু পোস্ট থেকে দেখুন

সংক্ষিপ্ত বিবরণ (কিছু অনুলিপি এবং পেস্ট সম্পর্কে দুঃখিত)

  • repoআপনার মূল ফোল্ডারের নীচে একটি ডিরেক্টরি তৈরি করুন :
yourproject
+ - pom.xML
+ - এসসিআর
+ - রেপো
  • আপনার স্থানীয় রেপো ডিরেক্টরিতে জারটি ইনস্টল করতে এটি চালান
এমভিএন ডিপ্লয়: ডিপ্লাই-ফাইল -ডুরল = ফাইল: /// পাথ / টু / আপনারপ্রজেক্ট / রেপো / -ডফিল = মেলিব -১.০.জার -ডগ্রুপআইডি = com.example- ডার্টিফ্যাক্ট আইডি = মাইলিব -ডপ্যাকেজিং = জার-ডারভিশন = 1.0
  • এটি আপনার যুক্ত করুন pom.xml:
<repositories>
    <!--other repositories if any-->
    <repository>
        <id>project.local</id>
        <name>project</name>
        <url>file:${project.basedir}/repo</url>
    </repository>
</repositories>


<dependency>
    <groupId>com.example</groupId>
    <artifactId>mylib</artifactId>
    <version>1.0</version>  
</dependency>

6

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

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

 <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <version>2.3.1</version>
            <executions>
                <execution>
                    <id>image-util-id</id>
                    <phase>install</phase>
                    <goals>
                        <goal>install-file</goal>
                    </goals>
                    <configuration>
                        <file>${basedir}/file-you-want-to-include.jar</file>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>${project.artifactId}</artifactId>
                        <version>${project.version}</version>
                        <packaging>jar</packaging>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

তবে এটি বাস্তবায়নের জন্য বিদ্যমান প্রকল্পের কাঠামো পরিবর্তন করতে হবে। প্রথমত, আপনার মনে রাখা উচিত যে এই জাতীয় প্রতিটি প্রকারের জন্য আলাদা আলাদা নকল মাভেন প্রকল্প (মডিউল) তৈরি করা উচিত। এবং সেখানে সমস্ত উপ-মডিউলগুলি অন্তর্ভুক্ত করে একটি প্যারেন্ট মাভেন প্রকল্প তৈরি করা উচিত যা হ'ল: সমস্ত জেআর মোড়ক এবং বিদ্যমান মূল প্রকল্প। কাঠামোটি হতে পারে:

মূল প্রকল্প (এটিতে প্যারেন্ট পিওএম ফাইলের মধ্যে মডিউল এক্সএমএল উপাদানযুক্ত সমস্ত উপ-মডিউল রয়েছে ) (পিওএম প্যাকেজিং)

জেআর 1 র‌্যাপার মাভেন চাইল্ড প্রজেক্ট (পিওএম প্যাকেজিং)

জেআর 2 র‌্যাপার মাভেন চাইল্ড প্রজেক্ট (পিওএম প্যাকেজিং)

প্রধান বিদ্যমান মাভেন শিশু প্রকল্প (ওয়ার, জেআর, ইয়ার .... প্যাকেজিং)

যখন পিতামাতা এমভিএন: ইনস্টল বা এমভিএন এর মাধ্যমে চলমান থাকে: প্যাকেজিং বাধ্য করা হয় এবং সাব-মডিউলগুলি কার্যকর করা হবে। এটি এখানে বিয়োগ হিসাবে উদ্বিগ্ন হতে পারে, যেহেতু প্রকল্পের কাঠামোটি পরিবর্তন করা উচিত, তবে শেষে একটি স্থিতিশীল সমাধান সরবরাহ করে


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

হিরো। এটি হ'ল ঠিক কী আমি চেয়েছিলাম। ভালো লাগলো এক ফেলা। 2013 অবশ্যই একটি ভাল বছর ছিল;)
ndtreviv

5

আমার কাছে যা সহজ বলে মনে হচ্ছে তা হল আপনার কাস্টম জারগুলি অন্তর্ভুক্ত করার জন্য আপনার মেভেন-কম্পাইলার-প্লাগইনটি কনফিগার করা। এই উদাহরণটি একটি lib ডিরেক্টরিতে যে কোনও জার ফাইল লোড করবে।

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <includes>
                    <include>lib/*.jar</include>
                </includes>
            </configuration>
        </plugin>

1
আমি যদি এই maven যোগ says nothing to complile!
রবি পেরেক

এটি বলছে all classes are up to date nothing to compileকারণ এটি *.javaআর সন্ধান করবে না । আপনি এগুলি ব্যবহার করে আবার যুক্ত করতে পারেন <include>**/*.java</include>। তবুও জারের জন্য আমার পক্ষে কোনও সাফল্য নেই
মাইকেল লাফারগ

@ ইমিগুয়েলহম, কোনও কারণেই এটি জারের পক্ষে কাজ করে না?
কিসনা

4

সমস্যাটি systemPathহ'ল নির্ভরতাগুলির জারগুলি আপনার নিদর্শনগুলিকে ট্রানজিটিভ নির্ভরতা হিসাবে বিতরণ করবে না। আমি এখানে যা পোস্ট করেছি তা চেষ্টা করুন: আপনার প্রকল্পের জারের ফাইলগুলি মভেনাইজ করা বা সেগুলি ওয়েবে-আইএনএফ / লিবিয়ামে রাখাই ভাল?

তারপরে যথারীতি নির্ভরতা ঘোষণা করুন।

এবং দয়া করে পাদলেখ নোট পড়ুন।


3

একটি অদ্ভুত সমাধান আমি পেয়েছি:

Eclipse ব্যবহার করে

  • সরল (অ-মাভেন) জাভা প্রকল্প তৈরি করুন
  • একটি মেইন ক্লাস যুক্ত করুন
  • ক্লাসপথে সমস্ত কলস যুক্ত করুন
  • চলমানযোগ্য জেআর রফতানি করুন (এটি গুরুত্বপূর্ণ, কারণ এটি করার জন্য অন্য কোনও উপায় নেই)
  • জেনারেটেড জেআর-এ প্রয়োজনীয় লাইব্রেরিগুলি বের করুন নির্বাচন করুন
  • লাইসেন্স সংক্রান্ত সমস্যাগুলি স্থির করুন
  • তাদম্মম ... উত্পন্ন জারটি আপনার এম 2 আরপিতে ইনস্টল করুন
  • আপনার অন্যান্য প্রকল্পে এই একক নির্ভরতা যুক্ত করুন।

চিয়ার্স, বালিন্ট


3

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

আপনার প্রয়োজন প্রতিটি জার ফাইলের জন্য নির্ভরতা এন্ট্রি যুক্ত করুন, পছন্দসই পার্ল স্ক্রিপ্ট বা অনুরূপ কিছু এবং আপনার পোম ফাইলে কপি / পেস্ট করুন।

#! /usr/bin/perl

foreach my $n (@ARGV) {

    $n=~s@.*/@@;

    print "<dependency>
    <groupId>local.dummy</groupId>
    <artifactId>$n</artifactId>
    <version>0.0.1</version>
    <scope>system</scope>
    <systemPath>\${project.basedir}/lib/$n</systemPath>
</dependency>
";

হ্যাঁ আমি ঠিক এটিই খুঁজছিলাম। গবেষণা পরীক্ষার কোডের জন্য এটিকে ধাক্কা দেওয়ার এক উপায়। অভিনব কিছু না। হ্যাঁ আমি জানি যে তারা সকলেই যা বলেছিল :) বিভিন্ন উত্সাহিত প্লাগইন সমাধানগুলি আমার উদ্দেশ্যগুলির জন্য ওভারকিল বলে মনে হচ্ছে। আমার কাছে এমন কিছু জার রয়েছে যা পোম ফাইলের সাহায্যে আমাকে তৃতীয় পক্ষের libs হিসাবে দেওয়া হয়েছিল। আমি এটি দ্রুত সংকলন / চালানো চাই। এই সমাধানটি যা আমি তুচ্ছভাবে অজগরকে খাপ খাইয়েছিলাম তা আমার জন্য বিস্ময়কর কাজ করেছে। আমার পোমে কেটে পেস্ট করুন।
পল

3

একটি দ্রুত এবং নোংরা ব্যাচের সমাধান (অ্যালেক্সের উত্তরের ভিত্তিতে):

libs.bat

@ECHO OFF
FOR %%I IN (*.jar) DO (
echo ^<dependency^>
echo ^<groupId^>local.dummy^</groupId^>
echo ^<artifactId^>%%I^</artifactId^>
echo ^<version^>0.0.1^</version^>
echo ^<scope^>system^</scope^>
echo ^<systemPath^>${project.basedir}/lib/%%I^</systemPath^>
echo ^</dependency^>
)

ভালো এটি চালানো: libs.bat > libs.txt। তারপরে libs.txtনির্ভরযোগ্যতা হিসাবে এটি খুলুন এবং অনুলিপি করুন।

আমার ক্ষেত্রে, আমার কোড সংকলনের জন্য আমার কেবল গ্রন্থাগারগুলির প্রয়োজন ছিল এবং এই সমাধানটি সেই উদ্দেশ্যেই সেরা।


2

যদিও এটি আপনার সমস্যার সাথে পুরোপুরি ফিট করে না, আমি এটি এখানে ফেলে দেব। আমার প্রয়োজনীয়তাগুলি ছিল:

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

প্রথমে (3) সম্পর্কে কথা বলা যাক: কেবল একটি ফোল্ডারে জারগুলি রাখা এবং কোনওভাবে চূড়ান্ত জারে মিশ্রিত করা এখানে কার্যকর হবে না, কারণ IDE এটি বুঝতে পারে না। এর অর্থ সমস্ত লাইব্রেরি সঠিকভাবে ইনস্টল করতে হবে। তবে, "এমভিএন ইনস্টল-ফাইল" ব্যবহার করে সবাই এটি ইনস্টল করতে চাই না।

আমার প্রকল্পে আমার মেটাওয়েজেট দরকার। এখানে আমরা যাচ্ছি:

  1. একটি নতুন মাভেন প্রকল্প তৈরি করুন (এটি "শেয়ারড-লিবস" বা এর মতো কিছু নাম দিন)।
  2. মেটাউইজেট ডাউনলোড করুন এবং জিআরপিটি এসআরসি / মেইন / লাইব এ বের করুন।
  3. ফোল্ডার ডক / এপিআইতে জাভাদোকগুলি রয়েছে। সামগ্রীর একটি জিপ তৈরি করুন (ডক্টর / এপিআই / এপিআই.জিপ)।
  4. Pom সংশোধন ভালো
  5. প্রকল্পটি তৈরি করুন এবং গ্রন্থাগারটি ইনস্টল করা হবে।
  6. আপনার প্রকল্পের নির্ভরতা হিসাবে লাইব্রেরি যুক্ত করুন, বা (যদি আপনি ভাগ করে নেওয়া-libs প্রকল্পে নির্ভরতা যুক্ত করেন) সমস্ত লাইব্রেরি একবারে পাওয়ার জন্য নির্ভরতা হিসাবে অংশীদারি-libs যুক্ত করুন।

প্রতিবার আপনার কাছে একটি নতুন গ্রন্থাগার রয়েছে, কেবল একটি নতুন এক্সিকিউশন যুক্ত করুন এবং সবাইকে আবার প্রকল্পটি তৈরি করতে বলুন (আপনি প্রকল্পের স্তরবিন্যাসের মাধ্যমে এই প্রক্রিয়াটি উন্নত করতে পারেন)।


আপনি ম্যাভেন চেক করতে চাইতে পারেন : আপেক্ষিক পথ দ্বারা একটি জারে একটি নির্ভরতা যুক্ত করুন (যা আইএমএইচও আরও ভাল বিকল্প)।
পাস্কেল থিভেন্ট

এটি ভাল যদি আপনি নিশ্চিত করতে পারেন যে স্থানীয় সংগ্রহস্থলের সর্বদা প্রকল্পের সাথে একই রকমের পাথ থাকে। আমার কাছে বিভিন্ন স্থানে অনেক প্রকল্প (বা বিভিন্ন শাখা) থাকলে এটি কাজ করবে না।
সেফালাপড

আমার উত্তরটি আপনার প্রকল্পের ভিতরে একটি জার সম্পর্কে pom.xML বলার উপায় আছে। কেন কেবল এটি করেন না, এবং এটি ars ir ভিত্তিক li / lib এর জারে দেখায়?
এড ব্রান্নিন

1
@ এড যেহেতু সিস্টেমের সুযোগটি একেবারেই নয়, সিস্টেম স্কোপড নির্ভরতাগুলির প্রচুর পার্শ্ব প্রতিক্রিয়া রয়েছে। এটি একটি ভয়ঙ্কর অভ্যাস যা সম্পূর্ণ নিষিদ্ধ করা উচিত।
পাস্কাল থিভেন্ট

2

তৃতীয় পক্ষের জারটি ইনস্টল করতে মাভেন-ইনস্টল-প্লাগইন ব্যবহার করুন ven

নীচে পদক্ষেপ রয়েছে:

  1. উত্স থেকে জার ফাইলটি ম্যানুয়ালি ডাউনলোড করুন (ওয়েবসাইট)
  2. একটি ফোল্ডার তৈরি করুন এবং এতে আপনার জার ফাইলটি রাখুন
  3. আপনার স্থানীয় মাভেন সংগ্রহস্থলে তৃতীয় পক্ষের জারটি ইনস্টল করতে নীচের কমান্ডটি চালান

এমভিএন ইনস্টল: ইনস্টল-ফাইল -ড্যাফিল = -ডগ্রুপআইডি = -ডার্টিফ্যাক্ট আইডি = -ড্রভিশন = -ডেপ্যাকেজিং =

নীচে যেমন আমি এটি সিমোনসাইট লগ 4 জে ব্যবহার করেছি for

এমভিএন ইনস্টল: ইনস্টল-ফাইল -ডফিল = / ব্যবহারকারী / অ্যাথঙ্কা / গিট / মাইপ্রোজেক্ট / রেপো / লগ 4 জে-রোলিং-অ্যাপেন্ডার.জার -ডগ্রুপআইডি = ইউকে.org.সিমোনসাইট -ডার্টিফ্যাক্টআইডি = লগ 4 জে-রোলিং-অ্যাপেন্ডার -ড্রভিশন = 20150607-2059 - Dpackaging = বয়াম

  1. Pom.xML এ নীচের মতো নির্ভরতা অন্তর্ভুক্ত করুন

      <dependency> 
            <groupId>uk.org.simonsite</groupId>
            <artifactId>log4j-rolling-appender</artifactId>
            <version>20150607-2059</version> 
      </dependency>
  2. আপনার প্যাকেজিং তৈরি করতে mvn ক্লিন ইনস্টল কমান্ডটি চালান

নীচে রেফারেন্স লিঙ্কটি দেওয়া হল:

https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html


এটি সীমান্তের লিংক-কেবল উত্তর । এখানে যত বেশি তথ্য অন্তর্ভুক্ত করতে আপনার উত্তরটি প্রসারিত করা উচিত, এবং কেবলমাত্র রেফারেন্সের জন্য লিঙ্কটি ব্যবহার করুন।
বিদায় স্ট্যাক এক্সচেঞ্জ 21

2

যাঁরা এখানে ভাল উত্তর খুঁজে পাননি তাদের জন্য, এটিতে প্রয়োজনীয় সমস্ত নির্ভরতা সহ একটি জার পেতে আমরা এটিই করছি। এই উত্তরটি ( https://stackoverflow.com/a/7623805/1084306 ) মাভেন অ্যাসেমব্লিং প্লাগইন ব্যবহার করার কথা উল্লেখ করেছে তবে উত্তরে প্রকৃত পক্ষে উদাহরণ দেয় না। এবং আপনি যদি উত্তরটির শেষ পর্যন্ত পুরোপুরি না পড়ে (এটি বেশ দীর্ঘ) তবে আপনি এটি মিস করতে পারেন। নীচে আপনার pom.xml যোগ করার ফলে উত্পন্ন হবেtarget/${PROJECT_NAME}-${VERSION}-jar-with-dependencies.jar

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4.1</version>
            <configuration>
                <!-- get all project dependencies -->
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <!-- MainClass in mainfest make a executable jar -->
                <archive>
                  <manifest>
                    <mainClass>my.package.mainclass</mainClass>
                  </manifest>
                </archive>

            </configuration>
            <executions>
              <execution>
                <id>make-assembly</id>
                <!-- bind to the packaging phase -->
                <phase>package</phase> 
                <goals>
                    <goal>single</goal>
                </goals>
              </execution>
            </executions>
        </plugin>

1

আমি @ অ্যালেক্স লেহম্যান্সের উত্তরের মন্তব্যে কিছু অজগর কোডকে ইঙ্গিত করেছি, সুতরাং এটি এখানে পোস্ট করছি।

def AddJars(jarList):
  s1 = ''
  for elem in jarList:
   s1+= """
     <dependency>
        <groupId>local.dummy</groupId>
        <artifactId>%s</artifactId>
        <version>0.0.1</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/manual_jars/%s</systemPath>
     </dependency>\n"""%(elem, elem)
  return s1

0

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

আশাকরি এটা সাহায্য করবে.


1
এটি আমি যা করছিলাম, এবং এটি কাজ করে, তবে এটি বৈশ্বিক শ্রেণীর পথকেও দূষিত করে এবং আমি এ থেকে দূরে সরে যাওয়ার চেষ্টা করছি। ধন্যবাদ!

@পুরল ঠিক কীভাবে আপনি এটি করলেন?
TheRealChx101

0

আমাদের প্রকল্পে যা কাজ করে তা হ'ল আর্কিমিডিস ট্রাজানো যা লিখেছিল, তবে আমাদের এম। এম 2 / সেটিংস.এক্সএমএলে কিছু ছিল:

 <mirror>
  <id>nexus</id>
  <mirrorOf>*</mirrorOf>
  <url>http://url_to_our_repository</url>
 </mirror>

এবং * কেন্দ্রীয় করে পরিবর্তন করা উচিত। সুতরাং যদি তার উত্তরটি আপনার পক্ষে কাজ করে না, আপনি আপনার সেটিংস.এমএমএল পরীক্ষা করে দেখুন


0

আমি কেবল একটি দ্রুত এবং নোংরা কাজটি চেয়েছিলাম ... আমি নিকিতা ভোলকভের থেকে স্ক্রিপ্টটি চালাতে পারিনি: সিনট্যাক্স ত্রুটি + এটি জারের নামগুলির জন্য একটি কঠোর বিন্যাসের প্রয়োজন।

আমি এই পার্ল স্ক্রিপ্টটি তৈরি করেছিলাম যা জার ফাইলের নামের জন্য যে কোনও বিন্যাসের সাথে কাজ করে এবং এটি কোনও এক্সএমএলে নির্ভরতা তৈরি করে যাতে এটি সরাসরি কোনও পম এ আটকানো যায়।

আপনি যদি এটি ব্যবহার করতে চান তবে নিশ্চিত করুন যে আপনি স্ক্রিপ্টটি কী করছে তা বুঝতে পেরেছেন, আপনার libফোল্ডারটি এবং এর জন্য মানটি পরিবর্তন করতে হতে পারে groupIdবা artifactId...

#!/usr/bin/perl

use strict;
use warnings;

open(my $fh, '>', 'dependencies.xml') or die "Could not open file 'dependencies.xml' $!";
foreach my $file (glob("lib/*.jar")) {
    print "$file\n";
    my $groupId = "my.mess";
    my $artifactId = "";
    my $version = "0.1-SNAPSHOT";
    if ($file =~ /\/([^\/]*?)(-([0-9v\._]*))?\.jar$/) {
        $artifactId = $1;
        if (defined($3)) {
            $version = $3;
        }
        `mvn install:install-file -Dfile=$file -DgroupId=$groupId -DartifactId=$artifactId -Dversion=$version -Dpackaging=jar`;
        print $fh "<dependency>\n\t<groupId>$groupId</groupId>\n\t<artifactId>$artifactId</artifactId>\n\t<version>$version</version>\n</dependency>\n";
        print " => $groupId:$artifactId:$version\n";
    } else {
        print "##### BEUH...\n";
    }
}
close $fh;

0

জাভাতে সুযোগ = 'সিস্টেম' পদ্ধতির সমাধান:

public static void main(String[] args) {
        String filepath = "/Users/Downloads/lib/";
        try (Stream<Path> walk = Files.walk(Paths.get(filepath))) {

        List<String> result = walk.filter(Files::isRegularFile)
                .map(x -> x.toString()).collect(Collectors.toList());

                String indentation = "    ";
                for (String s : result) {
                    System.out.println(indentation + indentation + "<dependency>");
                    System.out.println(indentation + indentation + indentation + "<groupId>"
                            + s.replace(filepath, "").replace(".jar", "")
                            + "</groupId>");
                    System.out.println(indentation + indentation + indentation + "<artifactId>"
                            + s.replace(filepath, "").replace(".jar", "")
                            + "</artifactId>");
                    System.out.println(indentation + indentation + indentation + "<version>"
                            + s.replace(filepath, "").replace(".jar", "")
                            + "</version>");
                    System.out.println(indentation + indentation + indentation + "<scope>system</scope>");
                    System.out.println(indentation + indentation + indentation + "<systemPath>" + s + "</systemPath>");
                    System.out.println(indentation + indentation + "</dependency>");
                }

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