আমি অফলাইন বিকাশের জন্য মাভেনকে কীভাবে কনফিগার করব?


117

মাভেন এটি ব্যবহার করতে সক্ষম হওয়ার জন্য কোনও মুহুর্তে ইন্টারনেটে কোনও সংযোগ প্রয়োজন? অর্থ বিশেষত সংকলন, পরিষ্কার, প্যাকেজিং ইত্যাদির জন্য অভ্যন্তরীণ মাভেন প্লাগইনগুলি পাওয়া?


আপনার কাছে ইন্টারনেট অ্যাক্সেস সহ কোনও মেশিন রয়েছে? সার্ভার হতে পারে?
মার্সেলো

2
আমরা করি, তবে সেখান থেকে উন্নয়নের পরিবেশে জিনিসগুলি পাওয়া ভাল, ক্লান্তিকর।

উত্তর:


163

আপনি অফলাইন মোডে মাভেন চালাতে পারেন mvn -o install। অবশ্যই আপনার স্থানীয় সংগ্রহস্থলে উপলভ্য কোনও শিল্পকলা ব্যর্থ হবে। মাভেন বিতরণকৃত ভাণ্ডারগুলিতে পূর্বাভাস পাওয়া যায় না তবে তারা অবশ্যই জিনিসগুলিকে আরও বিজোড় করে তোলে। এটি এজন্য যে অনেকগুলি দোকান অভ্যন্তরীণ আয়নাগুলি ব্যবহার করে যা ক্রমবর্ধমানভাবে কেন্দ্রীয় ভান্ডারের সাথে সিঙ্ক হয়।

এছাড়াও, mvn dependency:go-offlineঅফলাইনে কাজ শুরু করার আগে আপনার স্থানীয়ভাবে সমস্ত নির্ভরতা ইনস্টল করা হয়েছে তা নিশ্চিত করতে ব্যবহার করা যেতে পারে।


এই উত্তরের সাথে সংযুক্ত হয়ে, আমি আবিষ্কার করেছি যে এমভিএন তার "মূল" প্লাগইনগুলি (অর্থাৎ সংকলক) এর সাথে আসে। সুতরাং এটি এমভিএন ইনস্টল করে আমি যা চাই তা পেতে পারি।

8
আপনার pom.xML এ উল্লিখিত সমস্ত নির্ভরতাগুলি আপনার স্থানীয় সংগ্রহস্থলে উপস্থিত রয়েছে তা নিশ্চিত করতে আপনি "এমভিএন নির্ভরতা: গো-অফলাইন" ব্যবহার করতে পারেন তা বিবেচনা করুন ।
থরবজর্ন রাভন অ্যান্ডারসন

10
দুর্ভাগ্যক্রমে mvn dependency:go-offlineসহজভাবে সমস্ত কিছু ধরা দেয় না । একটি নতুন ভার্চুয়াল মেশিনের ভিতরে, উদাহরণস্বরূপ, আমার প্রকল্পটি এখনও এই লক্ষ্য চালানোর পরেও জিনিসগুলি ডাউনলোড করতে হবে download আরও দেখুন এই সমস্যা
পিএইচএস

2
আমার অভিজ্ঞতা দেখায় যে -o বিকল্প ঠিকমত কাজ করে না এবং চলতে চলতে-অফলাইনে লক্ষ্য যথেষ্ট থেকে অনেক দূরে একটি সম্পূর্ণ অফলাইন বিল্ড করার অনুমতি: সমাধান আমি এখানে পাওয়া দেখুন: stackoverflow.com/q/43661755/1767316
user1767316

আপনি যদি পতাকাটি যুক্ত করে থাকেন তবে এটির কাজ করা উচিত।
উদো

10

আপনার ল্যানে ইন্টারনেট এক্সেস সহ পিসি থাকলে আপনার একটি স্থানীয় মাভেন সংগ্রহশালা ইনস্টল করা উচিত।

আমি আর্টিফটরি ওপেন সোর্স সুপারিশ । আমরা আমাদের সংস্থায় এটি ব্যবহার করি এটি সেটআপ করা সত্যই সহজ।

কৃত্রিম কারখানা আপনার বিল্ড টুল (ম্যাভেন, পিঁপড়া, আইভী, গ্রেডেল ইত্যাদি) এবং বাইরের বিশ্বের মধ্যে প্রক্সি হিসাবে কাজ করে।

এটি দূরবর্তী নিদর্শনগুলিকে ক্যাশে করে যাতে আপনার সেগুলি বার বার ডাউনলোড করতে না হয়।

এটি অভ্যন্তরীণ নিদর্শনগুলির জন্য অবাঞ্ছিত (এবং কখনও কখনও সুরক্ষা-সংবেদনশীল) বহিরাগত অনুরোধগুলিকে অবরুদ্ধ করে এবং কীভাবে এবং কোথায় শিল্পকর্ম স্থাপন করা হয় এবং কে দ্বারা নিয়ন্ত্রণ করে।

শৈল্পিক স্থাপন করার পরে আপনার কেবলমাত্র settings.xmlউন্নয়ন মেশিনে ম্যাভেনের পরিবর্তন করতে হবে :

<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <mirrors>
    <mirror>
      <mirrorOf>*</mirrorOf>
      <name>repo</name>
      <url>http://maven.yourorganization.com:8081/artifactory/repo</url>
      <id>repo</id>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <repositories>
        <repository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>libs-release</name>
          <url>http://maven.yourorganization.com:8081/artifactory/libs-release</url>
        </repository>
        <repository>
          <snapshots />
          <id>snapshots</id>
          <name>libs-snapshot</name>
          <url>http://maven.yourorganization.com:8081/artifactory/libs-snapshot</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>plugins-release</name>
          <url>http://maven.yourorganization.com:8081/artifactory/plugins-release</url>
        </pluginRepository>
        <pluginRepository>
          <snapshots />
          <id>snapshots</id>
          <name>plugins-snapshot</name>
          <url>http://maven.yourorganization.com:8081/artifactory/plugins-snapshot</url>
        </pluginRepository>
      </pluginRepositories>
      <id>artifactory</id>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>artifactory</activeProfile>
  </activeProfiles>
</settings>

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


ল্যানের সাথে সংযুক্ত এমন অ্যাক্সেস সহ এমন কোনও মেশিন নেই।

2
শৈল্পিক কারখানার সাহায্যে আপনি আপনার পুরো সংগ্রহস্থলটি ব্যাকআপ করতে পারেন এবং তারপরে এটি ল্যানে থাকা কোনও একটি পিসিতে পুনরুদ্ধার করতে পারেন।
মার্সেলো

7

এর জন্য আপনার কাছে দুটি বিকল্প রয়েছে:

1.) সেটিংসে পরিবর্তন করুন। এক্সএমএল এটি প্রথম ট্যাগে যুক্ত করুন

<localRepository>C:/Users/admin/.m2/repository</localRepository>

২) অফলাইন কমান্ডের জন্য -o ট্যাগ ব্যবহার করুন।

mvn -o clean install -DskipTests=true
mvn -o jetty:run

6

মাভেনের আপনার স্থানীয় সংগ্রহস্থলে নির্ভরতা দরকার। এগুলি পাওয়ার সহজতম উপায় হ'ল ইন্টারনেট অ্যাক্সেস (বা এখানে সরবরাহিত অন্যান্য সমাধানগুলি ব্যবহার করা আরও শক্ত)।

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


4

দুঃখজনকভাবে dependency:go-offlineআমার পক্ষে কাজ করেনি কারণ এটি সবকিছুকে ক্যাশে করে নি, যেমন। POMs ফাইল এবং অন্যান্য স্পষ্টভাবে নির্ভরতা উল্লেখ করে।

কার্যসংক্রান্ত একটি নির্দিষ্ট করতে হয়েছে স্থানীয় সংগ্রহস্থলের অবস্থান , নয়তো মধ্যে settings.xmlফাইল <localRepository>...</localRepository>বা চালিয়ে mvnসঙ্গে -Dmaven.repo.local=...প্যারামিটার। প্রাথমিক প্রকল্প তৈরির পরে, সমস্ত প্রয়োজনীয় নিদর্শনগুলি ক্যাশে করা উচিত এবং তারপরে অফলাইনে মোডে মাভেন বিল্ড চালানোর সময় আপনি একই পদ্ধতিতে সংগ্রহস্থলের অবস্থানটি উল্লেখ করতে পারেন ( mvn -o ...)।


3

অফলাইনে যাওয়ার আগে আপনাকে নিশ্চিত করতে হবে যে সমস্ত কিছু আপনার স্থানীয় রেপোতে রয়েছে যা অফলাইনে কাজ করার সময় প্রয়োজন। প্রকল্প (গুলি) / পম (গুলি) এর জন্য "এমভিএন নির্ভরতা: গো-অফলাইন" চালানো, আপনি কাজ করার ইচ্ছুক, এটি অর্জনের প্রচেষ্টা কমিয়ে দেবে।

তবে এটি সাধারণত পুরো গল্পের হয় না, কারণ নির্ভরতা: গো-অফলাইন কেবল "বেয়ার বিল্ড" প্লাগইনগুলি ডাউনলোড করবে ( গো-অফলাইন / সমাধান-প্লাগইনগুলি সমস্ত প্লাগইন নির্ভরতা সমাধান করে না )। সুতরাং আপনার ডিপোতে ডিপ্লাই / টেস্ট / সাইট প্লাগইনগুলি (এবং সম্ভবত অন্যরা) ডাউনলোড করার একটি উপায় এবং তাদের নির্ভরতা খুঁজে পেতে হবে।

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

কখনও কখনও - যেমন ম্যাডা লিখেছেন - আপনি জানেন না, অফলাইনে থাকাকালীন আপনার কী প্রয়োজন হবে, যা "পর্যাপ্ত" রেপো রাখা অসম্ভব করে তোলে।

যাইহোক সঠিকভাবে ভরাট রেপো থাকাতে অফলাইনে যাওয়ার জন্য আপনাকে কেবল মাভেনের সেটিংস.এক্সএমএলে "<< অফলাইন> সত্য </ translation>" যুক্ত করতে হবে।

অফলাইনে থাকাকালীন আপনি আপনার রেপো পূরণ করতে যে ম্যাভেন প্রোফাইল (আইডি) ব্যবহার করেছিলেন তা পরিবর্তন করবেন না। মাভেন তার মেটাডেটা ডাউনলোড করা শৈলীগুলিকে একটি "পরিচয়" দিয়ে স্বীকৃতি দেয় যা প্রোফাইল আইডিতে আবদ্ধ।


3

আপনি যদি ইন্টেলিজ ব্যবহার করে থাকেন তবে আপনি কেবল পছন্দসমূহ -> বিল্ড, এক্সিকিউশন, ডিপ্লোয়মেন্ট -> বিল্ড সরঞ্জাম -> ম্যাভেন এবং অফলাইনে ওয়ার্কটি চেক / চেক করতে পারেন


1
একইভাবে --গ্রহণটি উইন্ডো -> পছন্দসমূহ -> ম্যাভেন এবং "অফলাইন" চেক করুন
স্টুয়ার্ট ব্রক

2

এটি কি তোমার জন্য কাজ করে?

http://jojovedder.blogspot.com/2009/04/running-maven-offline-using-local.html

এটিকে আপনার প্লাগইন ভাণ্ডারে যুক্ত করতে ভুলবেন না এবং ইউআরএলটি আপনার সংগ্রহস্থল যেখানেই থাকে সেখানে নির্দেশ করুন।

<repositories>
    <repository>
        <id>local</id>
        <url>file://D:\mavenrepo</url>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>local</id>
        <url>file://D:\mavenrepo</url>
    </pluginRepository>
</pluginRepositories>

যদি তা না হয় তবে আপনার মেশিনে আপনাকে একটি স্থানীয় সার্ভার, যেমন অ্যাপাচি চালানোর দরকার হতে পারে।


এটি জেটি, টমক্যাট, ইত্যাদি প্লাগইনগুলির মতো নির্ভরতা এবং প্লাগইনগুলির জন্য বেশি বলে মনে হয়।

1
@ প্রেধমে: এই পদ্ধতিটি সমস্ত প্লাগইনগুলির জন্য কাজ করবে, যেহেতু এগুলি সমস্তই আপনার স্থানীয় মেশিনের
মাভেন

2


(উত্স: jfrog.com )

অথবা

সোনাটাইপ নেক্সাস http://www.sonatype.org/nexus/ বা জেফ্রোগ আর্টিফ্যাক্টরি https://www.jfrog.com/artifactory/ এর মতো কেবল মেভেন সংগ্রহস্থল সার্ভারগুলি ব্যবহার করুন

কোনও বিকাশকারী একটি প্রকল্প তৈরির পরে, পরবর্তী বিকাশকারীদের দ্বারা তৈরি বা জেনকিনস সিআইকে ইন্টারনেট অ্যাক্সেসের প্রয়োজন হবে না।

ম্যাভেন রিপোজিটরি সার্ভারেও মাভেন সেন্ট্রাল (বা আরও বেশি প্রয়োজনীয় পাবলিক সঞ্চিতাগুলি) অ্যাক্সেস করার জন্য প্রক্সিগুলি কনফিগার করা থাকতে পারে এবং তারা দূরবর্তী সংগ্রহস্থলগুলিতে সিঞ্চে শিল্পকর্মগুলির তালিকা থাকতে পারে।


1

আমার অভিজ্ঞতাটি দেখায় যে -o বিকল্পটি সঠিকভাবে কাজ করে না এবং পুরো অফলাইন বিল্ডের অনুমতি দেওয়ার জন্য গো-অফলাইন লক্ষ্যটি যথেষ্ট দূরে:

যে সমাধানটি আমি যাচাই করতে পারি তার --legacy-local-repositoryমধ্যে -o(অফলাইন) একের পরিবর্তে মভেন বিকল্পের ব্যবহার এবং বিতরণ সংগ্রহস্থলের জায়গায় স্থানীয় সংগ্রহস্থল ব্যবহার অন্তর্ভুক্ত থাকে

এছাড়াও, আমাকে maven-metadata-maven2_central.xmlস্থানীয়-রেপোর প্রতিটি ফাইলই maven-metadata.xmlমাভেনের দ্বারা প্রত্যাশিত ফর্মটিতে অনুলিপি করতে হয়েছিল।

সমাধান আমি এখানে খুঁজে দেখুন ।


0

আপনার প্রশ্নের সরাসরি জবাব দেওয়া: এটির জন্য ইন্টারনেট সংযোগের প্রয়োজন নেই, তবে ল্যান বা লোকাল ডিস্কে কোনও সংগ্রহস্থল অ্যাক্সেসের প্রয়োজন নেই (এখানে পোস্ট করা অন্যান্য ব্যক্তির ইঙ্গিত ব্যবহার করুন)।

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


এটি, তবে একটি খাঁটি প্রকল্প (পিঁপড়া) হিসাবে নয়। সুতরাং আমার আমার সমস্ত লিবস রয়েছে তবে খাঁজকাটা অভ্যন্তরীণ লিবস সম্পর্কে বিশেষভাবে ভাবছিলাম। যেমন ম্যাভেন-প্লাগইন-সংকলক।

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

0

প্রস্তুতিতে অফলাইনে কাজ করার আগে কেবল চালান mvn dependency:go-offline


0

এর ত্রুটিগুলি ঠিক করতে একটি নতুন প্লাগইন উপস্থিত হয়েছে mvn dependency:go-offline:

https://github.com/qaware/go-offline-maven-plugin

এটি আপনার পোমে যুক্ত করুন, তারপরে চালান mvn -T1C de.qaware.maven:go-offline-maven-plugin:resolve-dependencies। একবার আপনি সমস্ত গতিশীল নির্ভরতা সেটআপ হয়ে গেলে, ম্যাভেন আবার কিছু ডাউনলোড করার চেষ্টা করবে না (যতক্ষণ না আপনি সংস্করণ আপডেট করবেন)।


-2
<offline> false </offline>

<localRepository>${user.home}/.m2/repository</localRepository>

প্রতি

<offline> true <offline>

<localRepository>${user.home}/.m2/repository</localRepository>

অফলাইন ট্যাগটিকে মিথ্যা থেকে সত্যে পরিবর্তন করুন।

অনলাইন রেপো থেকে ডাউনলোড করা হবে

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