ম্যাভেন উপলব্ধ একটি বিল্ট-ইন এই কাজ করার পদ্ধতি, নামক একটি ফাইল মাধ্যমে settings.xml , এবং এই অন্যান্য উত্তর মধ্যে আবৃত করা হয়েছে। যাইহোক, কমান্ড-লাইন সরঞ্জামগুলির জন্য পরিবেশ পরিবর্তনশীল দ্বারা নির্দিষ্ট করা প্রক্সিটিhttps_proxy
স্বয়ংক্রিয়ভাবে ব্যবহার করার জন্য এটি বিশেষত লিনাক্সে প্রথাগত ।
অনুসরণ করতে না নিজেকে পুনরাবৃত্তি নীতি (যা আপনাকে সাহায্য ভুল এড়ানোর জন্য দেয়ার উদ্দেশ্যে করা হচ্ছে), যদি সুন্দর হবে mvn
স্বয়ংক্রিয়ভাবে সেটি সাথেও কাজ করতে পারে।
এখানে একটি শেল স্ক্রিপ্ট যা প্রয়োজনীয় রূপান্তর করে:
#! /usr/bin/env bash
function javaproxy {
## using "Shell Parameter Expansion"
request_scheme=$1 ; proxy=$2
notscheme=$(echo ${proxy#*://}) ## parse
scheme=$(echo ${proxy%${notscheme}}) ## remove
scheme=$(echo ${scheme%://}) ## strip
hostport=$(echo ${proxy#*//*}) ## parse
host=$(echo ${hostport%:*}) ## parse
port=$(echo ${hostport#${host}}) ## remove
port=$(echo ${port#:}) ## strip
scheme=$(echo ${scheme:-http}) ## default
host=$(echo ${host:-localhost}) ## default
port=$(echo ${port:-8080}) ## default
echo -n " -D${request_scheme}.proxyHost=${host}"
echo -n " -D${request_scheme}.proxyPort=${port}"
}
JTO=""
if [ $http_proxy ] ; then
JTO="${JTO}$(javaproxy http ${http_proxy})"
fi
if [ $https_proxy ] ; then
JTO="${JTO}$(javaproxy https ${https_proxy})"
fi
if [ $no_proxy ] ; then
JTO="${JTO} -Dhttp.nonProxyHosts=$(echo \"${no_proxy}\"|tr ',' '|')"
fi
export JAVA_TOOL_OPTIONS=${JTO}
echo "JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS}"
mvn_friendliness_options+=--update-snapshots
mvn ${mvn_friendliness_options} $@
আপনি proxied_mvn
এটির মতো নাম রাখতে পারেন এবং এটি চালিয়ে যান:
$ https_proxy=http://localhost:58080 ./proxied_mvn clean package
বিকল্পভাবে, আপনি কেবল পরিবেশ সূচনাটি আপনার স্টার্টআপ স্ক্রিপ্টগুলিতে সরিয়ে নিতে পারেন।
gotchas
প্রক্সি দিয়ে কোনও নেক্সাসে অ্যাক্সেসের জন্য মাভেনকে কনফিগার করার চেষ্টা করার সময় অনেকগুলি জিনিস ভুল হতে পারে । আশা করি, এই স্ক্রিপ্টটি বেশ কয়েকটি চূড়ান্ত সমস্যাগুলির সাথে সহায়তা করবে, তবে অন্যরা রয়ে গেছে:
নেক্সাস শংসাপত্রগুলি উপলব্ধ এবং সঠিক (কেবলমাত্র প্রয়োজন হলে)
পরিক্ষা কর mvn help:effective-settings
মাভেন ক্যাচিং: "রেজুলেশন পুনরায় চেষ্টা করা হবে না"
mvn clean package --update-snapshots
মাভেন ওয়ালে-অফ-টেক্সট আউটপুট - ত্রুটি বার্তাগুলি রানের মধ্যে সূক্ষ্মভাবে আলাদা নয় তা নিশ্চিত করার জন্য আপনাকে আউটপুটটি ঘনিষ্ঠভাবে দেখতে হবে
জাভা এর পুরানো সংস্করণগুলির _JAVA_OPTIONS
পরিবর্তে প্রয়োজন হতে পারে JAVA_TOOL_OPTIONS
।
উপসংহার
একাধিক ধরণের প্রক্সি রয়েছে । অনুরূপভাবে, এখানে একাধিক উপায় যা এই প্রশ্নের ব্যাখ্যা করা হয়েছে - এখানে প্রচুর পরিমাণে বৈষম্য উত্তরের অবদান রয়েছে।
আমি স্পষ্টভাবে একটি (ফরোয়ার্ড এইচটিটিপি / এইচটিটিপিএস) ওয়েব প্রক্সি সার্ভারের ক্ষেত্রে সম্বোধন করেছি , যা কোনও কোম্পানির নেটওয়ার্কের (কিছু সংস্থার) জন্য ইন্টারনেট অ্যাক্সেস করতে ব্যবহৃত হয়। এটি কোনও SOCKS প্রক্সি থেকে উল্লেখযোগ্যভাবে পৃথক হতে পারে , যা এখানে কিছু উত্তরেও সম্বোধন করা হয়েছে।
ওহ, যাইহোক, এটি যেহেতু এটি ব্যবহার করে JAVA_TOOL_OPTIONS
, এই সমাধানগুলি আপনার অন্য জাভা অ্যাপ্লিকেশনগুলিকেও প্রক্সিটির অভ্যন্তরে চালানোর জন্য প্রয়োগ করা যেতে পারে ।
পার্টিং ইঙ্গিত ... উপরে আমার উদাহরণ ব্যবহার http://localhost:58080
। এটি কারণ যে আমি চালাতে আমার দূরবর্তী অ্যাক্সেস ক্লায়েন্টে ডাব্লুএসএলCLIENT_PROXY=localhost:58080
ব্যবহার করে আমার থেকে প্রকৃত নেটওয়ার্ক প্রক্সিতে পোর্ট-ফরোয়ার্ডিং সেট আপ করেছি :
ssh $PROXY_CLIENT -R $CLIENT_PROXY:$SERVER_PROXY