গিথুবে একটি মাভেন সংগ্রহশালা হোস্টিং


311

আমার কাছে একটি ছোট উন্মুক্ত উত্সাহিত লাইব্রেরির কাঁটা আছে যা আমি গিথুব নিয়ে কাজ করছি। আমি এটি ম্যাভেনের মাধ্যমে অন্য বিকাশকারীদের কাছে উপলভ্য করতে চাই, তবে আমি নিজের নেক্সাস সার্ভারটি চালাতে চাই না, কারণ এটি একটি কাঁটাচামড়া আমি সহজেই এটি oss.sonatype.org এ স্থাপন করতে পারি না।

আমি যা করতে চাই তা হ'ল এটি গিথুবতে মোতায়েন করা যাতে অন্যরা এটি মাভেন ব্যবহার করে অ্যাক্সেস করতে পারে। এটি করার সর্বোত্তম উপায় কী?


5
ওএসএস সোনাটাইপটিতে আপনি কোন লাইসেন্সিংয়ের সমস্যার মুখোমুখি হচ্ছেন? আমি নিজে এটি ব্যবহার করার পরে কেবল কৌতূহলী।
আর্কিমিডিস ট্রাজানো

5
এমন একটি সরঞ্জাম রয়েছে যা আপনাকে আপনার গিটহাব রেপো সরাসরি মাভেনের মাধ্যমে প্রকাশ করতে দেয়। jitpack.io stackoverflow.com/a/28483461/3975649
metrimer

গিতুব এমন একটি প্যাকেজ রেজিস্ট্রিও ঘোষণা করেছে যা মেভেনকে সমর্থন করে। বর্তমানে সর্বজনীন-বিটাতে: github.com/features/package-registry
Kaan

উত্তর:


482

আমি যে সর্বোত্তম সমাধানটি সন্ধান করতে পেরেছি সেগুলির মধ্যে এই পদক্ষেপগুলি রয়েছে:

  1. mvn-repoআপনার খাঁটি শিল্পকর্মগুলি হোস্ট করার জন্য ডাকা একটি শাখা তৈরি করুন ।
  2. আপনার শিল্পকলাগুলি গিথুবে ঠেলে দিতে গিথুব সাইট-মাভেন-প্লাগইন ব্যবহার করুন ।
  3. ম্যাভেনকে আপনার রিমোটটি mvn-repoম্যাভেন সংগ্রহস্থল হিসাবে ব্যবহার করতে কনফিগার করুন ।

এই পদ্ধতির ব্যবহারের বিভিন্ন সুবিধা রয়েছে:

  • মাভেন শিল্পকলাগুলি আপনার উত্স থেকে পৃথক নামে পরিচিত একটি পৃথক শাখায় রাখা হয় mvn-repo, অনেকটা গিথুব পৃষ্ঠাগুলির মতো একটি পৃথক শাখায় রাখা হয় gh-pages(যদি আপনি গিথাব পৃষ্ঠাগুলি ব্যবহার করেন)
  • কিছু প্রস্তাবিত সমাধানগুলির বিপরীতে, gh-pagesআপনি যদি সেগুলি ব্যবহার করেন তবে এটির সাথে আপনার বিরোধ নেই ।
  • প্রাকৃতিকভাবে ডিফল্ট টার্গেটের সাথে সম্পর্ক স্থাপন করুন যাতে শেখার জন্য কোনও নতুন মাভেন কমান্ড নেই। mvn deployআপনি যেমনটি করেন ঠিক তেমন ব্যবহার করুন

রিমোট মেভেন রেপোতে আপনি শৈল্পিক স্থাপনের সাধারণ উপায়টি হ'ল ব্যবহার করা mvn deploy, সুতরাং আসুন এই সমাধানের জন্য সেই প্রক্রিয়াটি প্যাচ করুন।

প্রথমে maven কে আপনার টার্গেট ডিরেক্টরিতে অস্থায়ী মঞ্চস্থ স্থানে নিদর্শনগুলি স্থাপন করতে বলুন। এটি আপনার যুক্ত করুন pom.xml:

<distributionManagement>
    <repository>
        <id>internal.repo</id>
        <name>Temporary Staging Repository</name>
        <url>file://${project.build.directory}/mvn-repo</url>
    </repository>
</distributionManagement>

<plugins>
    <plugin>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>2.8.1</version>
        <configuration>
            <altDeploymentRepository>internal.repo::default::file://${project.build.directory}/mvn-repo</altDeploymentRepository>
        </configuration>
    </plugin>
</plugins>

এখন চালানোর চেষ্টা করুন mvn clean deploy। আপনি দেখতে পাবেন যে এটি আপনার মেভেনের সংগ্রহস্থলটিকে মোতায়েন করেছে target/mvn-repo। পরবর্তী পদক্ষেপটি হ'ল ডিরেক্টরিটি গিটিহাবটিতে আপলোড করতে।

আপনার প্রমাণীকরণের তথ্য এতে যুক্ত করুন ~/.m2/settings.xmlযাতে গিথব গিটহাবের দিকে site-maven-pluginচাপ দিতে পারে:

<!-- NOTE: MAKE SURE THAT settings.xml IS NOT WORLD READABLE! -->
<settings>
  <servers>
    <server>
      <id>github</id>
      <username>YOUR-USERNAME</username>
      <password>YOUR-PASSWORD</password>
    </server>
  </servers>
</settings>

(উল্লিখিত হিসাবে, অনুগ্রহ chmod 700 settings.xmlকরে ফাইলটিতে আপনার পাসওয়ার্ডটি কেউ পড়তে না পারে তা নিশ্চিত করে নিশ্চিত করুন someone কেউ যদি কোনও কনফিগার ফাইলের পরিবর্তে কোনও পাসওয়ার্ডের জন্য কীভাবে সাইট-মভেন-প্লাগইন প্রম্পট করতে হয় তা আমাকে জানান))

তারপরে site-maven-pluginআপনার পোমে নিম্নলিখিতগুলি যুক্ত করে সদ্য কনফিগার করা নতুন সার্ভার সম্পর্কে গিটহাবকে বলুন :

<properties>
    <!-- github server corresponds to entry in ~/.m2/settings.xml -->
    <github.global.server>github</github.global.server>
</properties>

অবশেষে, site-maven-pluginআপনার অস্থায়ী স্টেজিং রেপো থেকে mvn-repoগিথুবে আপনার শাখায় আপলোড করার জন্য কনফিগার করুন :

<build>
    <plugins>
        <plugin>
            <groupId>com.github.github</groupId>
            <artifactId>site-maven-plugin</artifactId>
            <version>0.11</version>
            <configuration>
                <message>Maven artifacts for ${project.version}</message>  <!-- git commit message -->
                <noJekyll>true</noJekyll>                                  <!-- disable webpage processing -->
                <outputDirectory>${project.build.directory}/mvn-repo</outputDirectory> <!-- matches distribution management repository url above -->
                <branch>refs/heads/mvn-repo</branch>                       <!-- remote branch name -->
                <includes><include>**/*</include></includes>
                <repositoryName>YOUR-REPOSITORY-NAME</repositoryName>      <!-- github repo name -->
                <repositoryOwner>YOUR-GITHUB-USERNAME</repositoryOwner>    <!-- github username  -->
            </configuration>
            <executions>
              <!-- run site-maven-plugin's 'site' target as part of the build's normal 'deploy' phase -->
              <execution>
                <goals>
                  <goal>site</goal>
                </goals>
                <phase>deploy</phase>
              </execution>
            </executions>
        </plugin>
    </plugins>
</build>

mvn-repoশাখা এটা আপনার জন্য তৈরি করা হবে, অস্তিত্ব দরকার নেই।

এবার mvn clean deployআবার দৌড়াও । টার্গেট ডিরেক্টরিতে আপনার স্থানীয় স্টেজিং স্টোরগুলিতে ফাইলগুলি আপলোড-প্লাগইন "আপলোড" করতে হবে, তারপরে সাইট-ম্যাভেন-প্লাগইন সেই ফাইলগুলি প্রতিশ্রুতিবদ্ধ করে সার্ভারে ঠেলাচ্ছে push

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building DaoCore 1.3-SNAPSHOT
[INFO] ------------------------------------------------------------------------
...
[INFO] --- maven-deploy-plugin:2.5:deploy (default-deploy) @ greendao ---
Uploaded: file:///Users/mike/Projects/greendao-emmby/DaoCore/target/mvn-repo/com/greendao-orm/greendao/1.3-SNAPSHOT/greendao-1.3-20121223.182256-3.jar (77 KB at 2936.9 KB/sec)
Uploaded: file:///Users/mike/Projects/greendao-emmby/DaoCore/target/mvn-repo/com/greendao-orm/greendao/1.3-SNAPSHOT/greendao-1.3-20121223.182256-3.pom (3 KB at 1402.3 KB/sec)
Uploaded: file:///Users/mike/Projects/greendao-emmby/DaoCore/target/mvn-repo/com/greendao-orm/greendao/1.3-SNAPSHOT/maven-metadata.xml (768 B at 150.0 KB/sec)
Uploaded: file:///Users/mike/Projects/greendao-emmby/DaoCore/target/mvn-repo/com/greendao-orm/greendao/maven-metadata.xml (282 B at 91.8 KB/sec)
[INFO] 
[INFO] --- site-maven-plugin:0.7:site (default) @ greendao ---
[INFO] Creating 24 blobs
[INFO] Creating tree with 25 blob entries
[INFO] Creating commit with SHA-1: 0b8444e487a8acf9caabe7ec18a4e9cff4964809
[INFO] Updating reference refs/heads/mvn-repo from ab7afb9a228bf33d9e04db39d178f96a7a225593 to 0b8444e487a8acf9caabe7ec18a4e9cff4964809
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.595s
[INFO] Finished at: Sun Dec 23 11:23:03 MST 2012
[INFO] Final Memory: 9M/81M
[INFO] ------------------------------------------------------------------------

আপনার ব্রাউজারে github.com দেখুন, mvn-repoশাখা নির্বাচন করুন এবং আপনার সমস্ত বাইনারি এখন সেখানে রয়েছে তা যাচাই করুন।

এখানে চিত্র বর্ণনা লিখুন

অভিনন্দন!

আপনি এখন কেবল চালিয়ে দরিদ্র ব্যক্তির পাবলিক রেপোতে আপনার খোদাই করা শিল্পকর্মগুলি স্থাপন করতে পারেন mvn clean deploy

আপনার আরও একটি পদক্ষেপ নিতে হবে যা আপনার পোমের উপর নির্ভর করে এমন কোনও পোমগুলি কনফিগার করতে হবে যেখানে আপনার সংগ্রহস্থলটি রয়েছে know আপনার প্রকল্পের উপর নির্ভর করে যে কোনও প্রকল্পের পিমে নিম্নলিখিত স্নিপেট যুক্ত করুন:

<repositories>
    <repository>
        <id>YOUR-PROJECT-NAME-mvn-repo</id>
        <url>https://github.com/YOUR-USERNAME/YOUR-PROJECT-NAME/raw/mvn-repo/</url>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
        </snapshots>
    </repository>
</repositories>

এখন আপনার জার ফাইলগুলির জন্য যে কোনও প্রকল্পের প্রয়োজন হয় তা সেগুলি স্বয়ংক্রিয়ভাবে আপনার গিথুব মাভেন সংগ্রহশালা থেকে ডাউনলোড করবে।

সম্পাদনা করুন: মন্তব্যগুলিতে উল্লিখিত সমস্যা এড়াতে ('প্রতিশ্রুতি তৈরি করতে ত্রুটি: অবৈধ অনুরোধ


25
আরও মনে রাখবেন যে প্রতিবার যখন আপনি মোতায়েন করবেন তখন এই সমাধানটি আপনার পূর্ববর্তী শিল্পকর্মগুলি ওভাররাইট করে। এটি স্ন্যাপশট সংগ্রহস্থলের জন্য উপযুক্ত তবে মুক্তিপ্রাপ্ত শিল্পকর্মগুলির জন্য নয়। এই আচরণটি অক্ষম করতে <merge>true</merge>আপনার সাইট-মেভেন-প্লাগইন কনফিগারেশনে সেট করুন। আপনি যদি এটি করেন তবে, আমি মনে করি আপনাকে গিথুবে ম্যানুয়ালি এমভিএন-রেপো শাখা তৈরি করতে হবে এবং এর প্রথমবারের সমস্ত ফাইল মুছে ফেলতে হবে।
ইম্বি

13
+1 চালাক এবং ভালভাবে উপস্থাপিত। আমার একমাত্র সমালোচনা হ'ল আপনি ম্যাভেন প্লাগইন সাইটের লিঙ্কটি অন্তর্ভুক্ত করেননি: github.com/github/maven-plugins । Thx আমি আমার মাভেন সাইটটি গিথুবে প্রকাশ করার জন্য একটি উপায় খুঁজছিলাম!
চিহ্নিত করুন

7
দ্বি-ফ্যাক্টর প্রমাণীকরণটি গিথুব ব্যবহার করা হলে এই পদ্ধতির কাজ হয় না। ইস্যুতে আমার নোটটি এখানে দেখুন: github.com/github/maven-plugins/issues/36#issuecomment-31005606
ডাগ

18
আদেশের জন্য এই কাজ করার জন্য বহু-মডিউল প্রকল্প , এছাড়াও আপনি কেবল ব্যবহার করতে পারেন <altDeploymentRepository>internal.repo::default::file://${user.dir}/target/mvn-repo</altDeploymentRepository>সঙ্গে ম্যাভেন-প্রয়োগের-প্লাগইন , এবং <outputDirectory>${user.dir}/target/mvn-repo</outputDirectory>সঙ্গে সাইট-ম্যাভেন-প্লাগইন । এটি রুট ("প্যারেন্ট") প্রকল্পে সমস্ত নিদর্শন স্থাপন করবে এবং এগুলিকে গিথুব সম্পর্কিত অভিভাবকদের নির্দেশিকায় ঠেলে দেবে। অন্যথায়, প্রতিটি উপ-মডিউলটির বিল্ডিং পূর্বে নির্মিত সাব-মডিউলটিকে ওভাররাইট করে ...
sd

7
দুটি পরামর্শ যা এটি কার্যকর করে (কমপক্ষে আমার জন্য): গিথুব প্লাগইনের বর্তমান সংস্করণ সেট করুন (এখনই এটি 0.11 হবে)। এছাড়াও আমি প্রত্যেককে পাসওয়ার্ডের পরিবর্তে OAUTH টোকেন ব্যবহার করার পরামর্শ দেব। আপনি এটিকে 'সেটিংস-> অ্যাপ্লিকেশন-> ব্যক্তিগত অ্যাক্সেস টোকেনস' এ তৈরি করতে পারেন। আপনি এটি পিওএম-এ ইনমাইন করতে এবং টোকেনকে পরিবেশগত পরিবর্তনশীল হিসাবে সংরক্ষণ করতে পারেন Than <github.global.userName>YourUserName</github.global.userName> <github.global.password>${GITHUB_OAUTH_TOKEN</github.global.password>
ফ্লোরিয়ান লচ

120

গিটহাবকে ম্যাভেন রেপোজিটরি হিসাবে ব্যবহার করবেন না।

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

সেরা বিকল্প - মূল প্রকল্পের সাথে সহযোগিতা করুন

সর্বোত্তম বিকল্পটি হ'ল আসল প্রকল্পটিকে আপনার পরিবর্তনগুলি অন্তর্ভুক্ত করতে এবং আসলটির সাথে লেগে থাকা convince

বিকল্প - নিজের কাঁটাচামচ বজায় রাখুন

যেহেতু আপনি একটি ওপেন সোর্স লাইব্রেরিটি কাঁটা করেছেন, এবং আপনার কাঁটাচামচটি ওপেন সোর্স তাই আপনি নিজের কাঁটাচামচটি মেভেন সেন্ট্রালে আপলোড করতে পারেন ( সেন্ট্রাল রিপোজিটরিতে শৈল্পিকাগুলি আপলোড করার গাইড পড়ুন ) এটিকে একটি নতুন groupIdএবং সম্ভবত একটি নতুন উপহার দিয়ে artifactId

পরিবর্তনগুলি মূল প্রকল্পের সাথে সংযুক্ত না হওয়া পর্যন্ত আপনি যদি এই কাঁটাচামড়া বজায় রাখতে ইচ্ছুক হন তবে কেবলমাত্র এই বিকল্পটি বিবেচনা করুন এবং তারপরে আপনার এইটিটি ছেড়ে দেওয়া উচিত।

একটি কাঁটাচামচ সঠিক বিকল্প কিনা তা সত্যিই কঠোরভাবে বিবেচনা করুন। 'কেন কাঁটাবেন না' এর জন্য অগণিত গুগলের ফলাফলগুলি পড়ুন

যুক্তি

জারগুলির সাহায্যে আপনার সংগ্রহশালাটি ফুলিয়ে দেওয়া কোনও লাভের জন্য ডাউনলোডের আকার বাড়ে

একটি জার outputআপনার প্রকল্পের একটি, এটি এটির থেকে যে কোনও সময় পুনরুত্থিত হতে পারে inputsএবং আপনার গিটহাব রেপোতে কেবল এটি থাকা উচিত inputs

বিশ্বাস করবেন না? তারপরে 'গিটারে বাইনারি সঞ্চয় করবেন না' এর জন্য গুগলের ফলাফলগুলি পরীক্ষা করুন ।

গিটহাবের সহায়তা বড় ফাইলগুলির সাথে কাজ করা আপনাকে একই জিনিসটি বলবে। স্বীকার করা হয় যে জারগুলি বড় নয় তবে তারা উত্স কোডের চেয়ে বড় এবং একবার একটি রিলিজ দ্বারা একটি জার তৈরি করা হলেও তাদের সংস্করণ করার কোনও কারণ নেই - এটিই একটি নতুন রিলিজ।

আপনার pom.xML এ একাধিক रिपো সংজ্ঞা দেওয়া আপনার সংগ্রহস্থলের সংখ্যা দ্বারা গতি কমিয়ে দেয় শিল্পকর্মের সংখ্যা

স্টিফেন কনলি বলেছেন :

যদি কেউ আপনার রেপো যুক্ত করে তবে তারা তাদের বিল্ড পারফরম্যান্সের উপর প্রভাব ফেলবে কারণ তাদের বিরুদ্ধে আর্টিফেক্টগুলি পরীক্ষা করার জন্য তাদের কাছে এখন আর একটি রেপো রয়েছে ... যদি আপনার কেবল একটি রেপো যোগ করতে হয় তবে এটি কোনও বড় সমস্যা নয় ... তবে সমস্যাটি বেড়ে যায় এবং পরের জিনিসটি আপনি নিজের জানেন মেভেন বিল্ড প্রতিটি শিল্পকর্মের জন্য 50 টি রেপো পরীক্ষা করে দেখছে এবং বিল্ড টাইম একটি কুকুর।

সেটা ঠিক! মাভেনকে আপনার pom.xML এ সংজ্ঞায়িত প্রতিটি রেপোজিটরির বিপরীতে প্রতিটি আর্টিক্ট (এবং তার নির্ভরতা) যাচাই করা দরকার , কারণ সেই সংগ্রহস্থলের যে কোনও একটিতে নতুন সংস্করণ উপলভ্য হতে পারে।

এটি নিজের জন্য চেষ্টা করে দেখুন এবং আপনি ধীর গতির ব্যথা অনুভব করবেন।

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

আপনি সংগ্রহশালাগুলির পরিচিতি সম্পর্কে মাভেনের ডকুমেন্টেশনে সংগ্রহস্থল সম্পর্কে আরও কিছু পড়তে পারেন


3
সম্পূর্ণরূপে সম্মত হন, এবং কাঁটাচামচগুলি আপনি কিছু সময়ের জন্য রাখতে চান তা বোঝায়। তবে বিদ্যমান প্রকল্পে কেবলমাত্র একটি ছোট প্যাচের জন্য এটি প্রচুর ওভারহেড হতে পারে।
এম্বেবি

5
আমি সন্দেহ করি গিথুব এতে সমস্যা আছে কারণ তারা এই প্লাগইনটি লিখেছিল যা এই ক্ষমতা সক্ষম করে। আমি সম্মতি দিচ্ছি এটি ধারণার চেয়ে কম, তবে সি ল লা ভি।
Phy6

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

1
@ গ্যাব তারপর আপনার নির্ভরতা সত্যিকারের মুক্ত উত্স নয়। আপনার অন্য প্রকল্পের সাথে যোগাযোগ করা উচিত এবং এটি ব্যাখ্যা করুন এবং তাদের লাইসেন্সিং ঠিক করার জন্য তাদের পান। (সান অতীতে এই আচরণের অপরাধী ছিলেন)
বায়ে

1
@ বিএ এটি লাইসেন্স দেওয়ার কোনও প্রশ্ন নয়। কিছু প্রকল্পের মালিক কেন্দ্রীয়ভাবে প্রকাশ না করার সিদ্ধান্ত নেন কারণ এটি তাদের অগ্রাধিকার নয়। আপনার উপায় বাস্তব বিশ্বে সম্ভব নয়। আপনি যদি পরীক্ষা করতে চান: কেন্দ্রীয় কোড . google.com/p/sd-dss এ প্রকাশের জন্য এটিকে বোঝান । এটি ইইউ সম্প্রদায় দ্বারা অর্থায়িত একটি বড় ওপেন সোর্স প্রকল্প :)
গ্যাব

48

আপনার গিটহাবের সংগ্রহশালাটিকে ম্যাভেন আর্টফ্যাক্ট হিসাবে প্রকাশ করার জন্য আপনি জিটপ্যাক (পাবলিক গিট রিপোজিটরিগুলির জন্য মুক্ত) ব্যবহার করতে পারেন । এটা খুব সহজ. আপনার ব্যবহারকারীদের এটি তাদের pom.xML এ যুক্ত করতে হবে:

  1. সংগ্রহস্থল যুক্ত করুন:
<repository>
    <id>jitpack.io</id>
    <url>https://jitpack.io</url>
</repository>
  1. নির্ভরতা যুক্ত করুন:
<dependency>
    <groupId>com.github.User</groupId>
    <artifactId>Repo name</artifactId>
    <version>Release tag</version>
</dependency>

অন্যত্র উত্তর হিসাবে ধারণাটি হ'ল জিটপ্যাকটি আপনার গিটহাব রেপো তৈরি করবে এবং জারগুলি পরিবেশন করবে। প্রয়োজনটি হ'ল আপনার একটি বিল্ড ফাইল এবং একটি গিটহাব রিলিজ have

সুন্দর জিনিস হ'ল আপনাকে ডিপ্লোয়মেন্ট এবং আপলোডগুলি পরিচালনা করতে হবে না। যেহেতু আপনি নিজের কৃত্রিম সংগ্রহস্থলটি আপনার প্রয়োজনের জন্য এটি একটি ভাল মিল বজায় রাখতে চান না।


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

1
আপনার প্রকল্পগুলির গ্রুপআইড পরিবর্তন করা প্রয়োজন। আপনি এখনও 'com.github.User' গ্রুপ আইডি ব্যবহার করে সেই প্রকল্পগুলি ইনস্টল করতে পারেন। তবে সম্ভবত আপনার ব্যবহারের কেস আলাদা।
আন্দ্রেজস

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

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

1
ভাল ধারণা, আমি এটি করেছি: github.com/jitpack/jitpack.io/issues/209 , ধন্যবাদ :-)
জাকম্যাক

9

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

এটি আপনার বিল্ড বিভাগে যুক্ত করুন

     <extensions>
        <extension>
        <artifactId>wagon-webdav-jackrabbit</artifactId>
        <groupId>org.apache.maven.wagon</groupId>
        <version>2.2</version>
        </extension>
    </extensions>

আপনার বিতরণ ব্যবস্থাপনা বিভাগে এর মতো কিছু যুক্ত করুন

<repository>
    <id>release.repo</id>
    <url>dav:http://repo.jillesvangurp.com/releases/</url>
</repository>

অবশেষে আপনার সেটিংস.এক্সএমএলে সংগ্রহস্থল অ্যাক্সেস সেটআপ করার বিষয়টি নিশ্চিত করুন

এটি আপনার সার্ভার বিভাগে যুক্ত করুন

    <server>
        <id>release.repo</id>
        <username>xxxx</username>
        <password>xxxx</password>
    </server>

এবং আপনার সংগ্রহস্থল বিভাগে একটি সংজ্ঞা

            <repository>
                <id>release.repo</id>
                <url>http://repo.jillesvangurp.com/releases</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>

শেষ অবধি, আপনার যদি কোনও স্ট্যান্ডার্ড পিএইচপি হোস্টিং থাকে তবে আপনি ওয়েবড্যাভ ক্ষমতা যুক্ত করতে সাবদ্রাভের মতো কিছু ব্যবহার করতে পারেন।

সুবিধা: আপনার নিজের মভেন রিপোজিটরি ডাউনসাইডস রয়েছে: আপনার নেক্সাসে পরিচালনার কোনও ক্ষমতা নেই; আপনার কোথাও কিছু ওয়েবড্যাভ সেটআপ দরকার


9

2019 সাল থেকে আপনি এখন গিথুব প্যাকেজ রেজিস্ট্রি নামে নতুন কার্যকারিতাটি ব্যবহার করতে পারেন ।

মূলত প্রক্রিয়াটি হ'ল:

  • গিথব সেটিংস থেকে একটি নতুন ব্যক্তিগত অ্যাক্সেস টোকেন তৈরি করুন
  • আপনারতে সংগ্রহস্থল এবং টোকেন তথ্য যুক্ত করুন settings.xml
  • ব্যবহার স্থাপন

    mvn deploy -Dregistry=https://maven.pkg.github.com/yourusername -Dtoken=yor_token  

2019 হিসাবে, এটি সেরা বিকল্প।
এইচআরজে

1
তবে অন্য কারও দ্বারা এটি ব্যবহার করার জন্য দেখে মনে হচ্ছে তাকে সম্পর্কিত URL এবং
লেখক

খুব অদ্ভুত ... আপনি আপনার সর্বজনীন প্যাকেজটি তৈরি করেন, তবে অন্য লোকেদের এটির আগে প্রমাণীকরণের দরকার হয়
এমারুসফুল

তবে, বেসরকারী ভাণ্ডারগুলির জন্য, ব্যবহার / মাসের শংসাপত্রের পরে, দাম চিত্রটিতে আসে
লোকেশ্বর দরজী

8

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


3
আমি চেষ্টা করার সময় আমি এটি বিশ্বাস করতে পারি না, তবে বিন্ট্রে স্ন্যাপশটগুলি সমর্থন করে না। বেহুদা।
zakmck

6
এটি আর মুক্ত নয়। মাসে একশ ডলার।
অ্যান্ড্রয়েডদেভ

আমি মনে করি এটি ওপেন সোর্স সফ্টওয়্যার প্রকল্পগুলির জন্য ফি: jfrog.com/open-source
iBiber

0

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

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