আমি এর মাধ্যমে একটি আর্টিক্ট ইনস্টল install:install-file
করতে পারি, তবে কীভাবে আমি একটি শিল্পকর্ম ডাউনলোড করতে পারি?
উদাহরণ স্বরূপ:
mvn download:download-file -DgroupId=.. -DartifactId=.. -Dversion=LATEST
আমি এর মাধ্যমে একটি আর্টিক্ট ইনস্টল install:install-file
করতে পারি, তবে কীভাবে আমি একটি শিল্পকর্ম ডাউনলোড করতে পারি?
উদাহরণ স্বরূপ:
mvn download:download-file -DgroupId=.. -DartifactId=.. -Dversion=LATEST
উত্তর:
আপনি ম্যাভেন নির্ভরতা প্লাগইনটি ব্যবহার করতে পারেন যা dependency:get
সংস্করণ ২.১ থেকে দুর্দান্ত লক্ষ্য রয়েছে। কোনও পোমের দরকার নেই, কমান্ড লাইনে সবকিছু ঘটে।
dependency:get
লক্ষ্যটি সন্ধান করার জন্য , আপনাকে স্পষ্টভাবে মভেনকে ২.১ সংস্করণটি ব্যবহার করতে হবে, অর্থাত আপনার সংস্করণ সহ প্লাগইনের পুরোপুরি যোগ্যতাসম্পন্ন নাম ব্যবহার করা দরকার:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get \
-DrepoUrl=url \
-Dartifact=groupId:artifactId:version
আপডেট: ম্যাভেনের পুরানো সংস্করণগুলির সাথে (২.১ এর পূর্বে), dependency:get
আপনার প্লেনের কোনও প্রদত্ত সংস্করণ ব্যবহারের জন্য মেভেনের অনুলিপি জোর করে সাধারণভাবে (সম্পূর্ণরূপে যোগ্যতাসম্পন্ন নাম এবং সংস্করণ ব্যবহার না করে ) চালানো সম্ভব ।
ইহা এভাবে করা যাবে:
1. <settings>
আপনার ~/.m2/settings.xml
ফাইলের উপাদানটির মধ্যে নিম্নলিখিত লাইনটি যুক্ত করুন:
<usePluginRegistry>true</usePluginRegistry>
2. ~/.m2/plugin-registry.xml
নিম্নলিখিত বিষয়বস্তু সহ ফাইল যুক্ত করুন :
<?xml version="1.0" encoding="UTF-8"?>
<pluginRegistry xsi:schemaLocation="http://maven.apache.org/PLUGIN_REGISTRY/1.0.0 http://maven.apache.org/xsd/plugin-registry-1.0.0.xsd"
xmlns="http://maven.apache.org/PLUGIN_REGISTRY/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<useVersion>2.1</useVersion>
<rejectedVersions/>
</plugin>
</plugins>
</pluginRegistry>
তবে এটি ম্যাভেন ২.১ / ২.২ এর সাথে আর কাজ করবে বলে মনে হচ্ছে না। প্রকৃতপক্ষে, প্লাগিন রেজিস্ট্রির পরিচিতি অনুসারে , এর বৈশিষ্ট্যগুলি plugin-registry.xml
নতুনভাবে ডিজাইন করা হয়েছে (বহনযোগ্যতার জন্য) এবং প্লাগইন রেজিস্ট্রি বর্তমানে মাভেন 2 এর মধ্যে একটি আধা-সুপ্ত অবস্থায় রয়েছে । সুতরাং আমি মনে করি আমাদের আপাতত দীর্ঘ নাম ব্যবহার করতে হবে (পম ছাড়াই প্লাগইন ব্যবহার করার সময়, যা পিছনের ধারণাটি dependency:get
) idea
:jar:sources
করার হস্তনির্মিত বস্তু দেখতে stackoverflow.com/a/31109185/537554
mvn dependency:get -Dartifact=group-id:artefact-id:version
মাভেন নির্ভরতা প্লাগইনের সর্বশেষতম সংস্করণ (২.৮) সহ , মাভেন সেন্ট্রাল রিপোজিটরি থেকে একটি নিদর্শন ডাউনলোড করা যেমন সহজ:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=groupId:artifactId:version[:packaging[:classifier]]
যেখানে groupId:artifactId:version
ইত্যাদি ম্যাভেন স্থানাঙ্ক হয়
উদাহরণস্বরূপ, ম্যাভেন ২.০.৯, মাভেন ২.২.১, এবং ম্যাভেন 3.0.০.৪ এর সাথে পরীক্ষিত:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=org.hibernate:hibernate-entitymanager:3.4.0.GA:jar:sources
( প্রথম স্থানে তাঁর দুর্দান্ত উত্তর দেওয়ার জন্য পাস্কাল থিভেন্টকে ধন্যবাদ । আমি আরও একটি উত্তর যুক্ত করছি, কারণ এটি কোনও মন্তব্যে ফিট করে না এবং এটি সম্পাদনার পক্ষে খুব ব্যাপক হবে))
jar:sources
বলতে পারবেন / মানে কি ? আপনার "জার" নির্দিষ্ট করার দরকার নেই কেন? এবং "উত্স" এর অর্থ কি এটি নিদর্শনগুলির জন্য প্রয়োজনীয় অতিরিক্ত নির্ভরতা ডাউনলোড করবে?
sources
, একটি জেআর ফাইল যা কেবল জাভা উত্স ধারণ করে, ৩. javadoc
, কেবলমাত্র এপিআই ডক্স সহ একটি জেআর ফাইল। আরও দেখুন: ম্যাভেন ডিফল্ট আর্টিক্ট হ্যান্ডলারগুলি ।
[:classifier]
সঠিকভাবে কীভাবে ব্যবহার করতে হয় সে সম্পর্কে স্পষ্ট করে দেওয়ার বিষয়ে ধন্যবাদ , যদি আমার কাছে এসিএমলিবি প্লাগইন তৈরি হয় তবে আমি জিপ ফাইল তৈরি করতে পারি যা আমি ডাউনলোড করতে চাই।
শেষ পর্যন্ত ম্যাভেন ৩.১.১ এর সাথে "উপাদান.জার" নামক একটি শিল্পকর্মের সর্বশেষ সংস্করণটি ডাউনলোড করার জন্য আমার পক্ষে কী কাজ করেছে (অন্যান্য পরামর্শগুলি বেশিরভাগ ক্ষেত্রে বিশ্বাস করি না কেন মেন সংস্করণ পরিবর্তনের কারণে)
এটি প্রকৃতপক্ষে ফাইলটি ডাউনলোড করে এবং স্থানীয় ওয়ার্কিং ডিরেক্টরিতে এটি অনুলিপি করে
বাশ থেকে:
mvn dependency:get \
-DrepoUrl=http://.../ \
-Dartifact=com.foo.something:component:LATEST:jar \
-Dtransitive=false \
-Ddest=component.jar \
-DrepoUrl
, আমার ধারণা এটি যাইহোক আমার পোম থেকে বোঝানো হয়েছিল। এছাড়াও আমি ব্যবহার করেননি -Ddest
যেমন আমি আসলে করেনি এটা নিয়মিত করতে ডাউনলোড করতে চান .m2
নির্দেশিকা।
dest
পরামিতি অবচিত এবং একজন invokation সঙ্গে প্রতিস্থাপিত হতে পারে copy
পরে get
যেমন: mvn dependency:copy -Dartifact=com.foo.something:component:LATEST:jar -DoutputDirectory=.
(এই ক্ষেত্রে কাজ ডিরেক্টরির মধ্যে বয়াম স্থাপন)।
Goal requires a project to execute but there is no POM in this directory
।
mvn dependency:copy
( dependency:get
প্রথম ছাড়া )
কীভাবে আর্টিফ্যাক্ট বাইনারি পাওয়া যায় সে সম্পর্কে প্যাস্কাল থিভেন্টের উত্তরটি হ'ল, তবে আর্টিফ্যাক্ট উত্সগুলিও পাওয়ার জন্য আমরা ব্যবহার করতে পারি:
mvn dependency:get -Dartifact=groupId:artifactId:version:jar:sources
যেমন
mvn dependency:get -Dartifact=junit:junit:4.12:jar:sources
এটি কাজ করে কারণ artifact
প্যারামিটারটি আসলে থাকে groupId:artifactId:version[:packaging][:classifier]
। কেবল প্যাকেজিং এবং শ্রেণিবদ্ধকরণ .চ্ছিক।
সঙ্গে jar
হিসাবে প্যাকেজিং এবং sources
যেমন ক্লাসিফায়ার , ম্যাভেন নির্ভরতা প্লাগইন আমরা সূত্র বয়াম, না হস্তনির্মিত বস্তু বয়াম জন্য বলছি বুঝতে পারে।
দুর্ভাগ্যক্রমে আপাতত উত্সের জার ফাইলগুলি ট্রানজিটিভলি ডাউনলোড করা যায় না, যা বোঝা যায় না, তবে আদর্শিকভাবে আমি বিশ্বাস করি যে এটি downloadSources
গ্রাহ্যগ্রহণ গ্রাহক প্লাগইনের মতো বিকল্পটিকেও সম্মান করতে পারে।
কেউ নির্ভরতা ব্যবহার করতে পারে: অনুলিপি ( http://maven.apache.org/plugins/maven-d dependency -plugin /copy- mojo.html ) যা প্লাগইন কনফিগারেশন বিভাগে সংজ্ঞায়িত শিল্পকর্মগুলির একটি তালিকা নেয় এবং সেগুলি একটি নির্দিষ্ট স্থানে অনুলিপি করে , তাদের নাম পরিবর্তন করে বা পছন্দসই সংস্করণটি সরিয়ে ফেলা। এই লক্ষ্যটি রিমোট রিপোজিটরিগুলি থেকে নিদর্শনগুলি সমাধান করতে পারে যদি সেগুলি স্থানীয় সংগ্রহস্থল বা চুল্লির মধ্যে না থাকে।
প্লাগইনটির সমস্ত বৈশিষ্ট্য মেভেন সিএলআইতে ব্যবহার করা যায়নি। "ব্যবহারকারী সম্পত্তি:" বৈশিষ্ট্যযুক্ত বৈশিষ্ট্য নির্দিষ্ট করা যেতে পারে। নীচের উদাহরণে আমি আমার টেম্প ফোল্ডারে জুনিট ডাউনলোড করছি এবং জার ফাইলটি থেকে ভেনশনটি সরিয়ে নিচ্ছি।
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:copy -Dartifact=junit:junit:4.11 -DoutputDirectory=/tmp -Dmdep.stripVersion=true
যেখানে আর্টিফ্যাক্ট = জুনিট: জুনিট: 4.11 হ'ল মেভেন কোঅর্ডিনেটস। এবং আপনি আর্টিফ্যাক্যাটকে গ্রুপআইড হিসাবে নির্দিষ্ট করেছেন: আর্টিফ্যাক্টআইডি: সংস্করণ [: প্যাকেজিং [: শ্রেণিবদ্ধ]]
( প্রথম স্থানটিতে তার https://stackoverflow.com/a/18632876/2509415 সরবরাহ করার জন্য পাস্কাল থিভেন্টকে ধন্যবাদ । আমি অন্য উত্তর যুক্ত করছি)
এক লাইনার এমভিএন ছাড়াই সর্বশেষ মেভেন আর্টিফ্যাক্ট ডাউনলোড করতে:
curl -O -J -L "https://repository.sonatype.org/service/local/artifact/maven/content?r=central-proxy&g=io.staticcdn.sdk&a=staticcdn-sdk-standalone-optimizer&e=zip&v=LATEST"
অফিসিয়াল ডকুমেন্টেশন থেকে ব্যবহার:
https://maven.apache.org/plugins/maven-dependency-plugin/usage.html#dependency:get
আমার ক্ষেত্রে, নীচের উত্তর দেখুন:
mvn dependency:get -Dartifact=$2:$3:$4:$5 -DremoteRepositories=$1 -Dtransitive=false
mvn dependency:copy -Dartifact=$2:$3:$4:$5 -DremoteRepositories=$1 -Dtransitive=false -DoutputDirectory=$6
#mvn dependency:get -Dartifact=com.huya.mtp:hynswup:1.0.88-SNAPSHOT:jar -DremoteRepositories=http://nexus.google.com:8081/repository/maven-snapshots/ -Dtransitive=false
#mvn dependency:copy -Dartifact=com.huya.mtp:hynswup:1.0.88-SNAPSHOT:jar -DremoteRepositories=http://nexus.google.com:8081/repository/maven-snapshots/ -Dtransitive=false -DoutputDirectory=.
নির্দিষ্ট আর্টফ্যাক্টটি ডাউনলোড করতে "এমভিএন নির্ভরতা: get" কমান্ডটি ব্যবহার করুন এবং "এমভিএন নির্ভরতা: অনুলিপি" কমান্ডটি ব্যবহার করুন ডাইর্ট ডিয়ারের জন্য ডাউনলোডকৃত শিল্পকলাটি অনুলিপি করতে "-ডুটপুট ডিরেক্টরি"
ম্যাভেন 3.6 ব্যবহার করে এএসএম -7 পাওয়ার জন্য এখানে একটি উদাহরণ রয়েছে:
mvn dependency:get -DremoteRepositories=maven.apache.org -Dartifact=org.ow2.asm:7.0:sources:jar
বা আপনি এখান থেকে জারটি ডাউনলোড করতে পারেন: https://search.maven.org/search?q=g:org.ow2.asm%20AND%20a:asm এবং তারপরে
mvn install:install-file -DgroupId=org.ow2.asm -DartifactId=asm -Dversion=7.0 -Dclassifier=sources -Dpackaging=jar -Dfile=/path/to/asm-7.0.jar
আদেশ:
mvn install:install-file
সাধারণত আপনার স্থানীয় সংগ্রহস্থলে নিদর্শনগুলি ইনস্টল করে, তাই আপনার এটি ডাউনলোড করার দরকার নেই। তবে, আপনি যদি অন্যদের সাথে আপনার নিদর্শনটি ভাগ করতে চান তবে আপনাকে খোদাই করা শিল্পটি একটি কেন্দ্রীয় ভান্ডারটিতে স্থাপন করতে হবে আরও বিশদ জানতে ডিপ্লাই প্লাগইন দেখুন।
অতিরিক্তভাবে আপনার POM এর উপর নির্ভরতা যুক্ত করা আপনার প্রকল্পটি তৈরি করার সময় আপনার প্রয়োজনীয় কোনও তৃতীয় পক্ষের নিদর্শনগুলি নিয়ে আসবে। অর্থাৎ এটি কেন্দ্রীয় সংগ্রহশালা থেকে নিদর্শনগুলি ডাউনলোড করবে।