गीथूब पर एक मावेन भंडार की मेजबानी


312

मेरे पास एक छोटे से खुले खट्टे पुस्तकालय का एक कांटा है जो मैं गितुब पर काम कर रहा हूं। मैं इसे अन्य डेवलपर्स के लिए मावेन के माध्यम से उपलब्ध कराना चाहता हूं, लेकिन मैं अपना खुद का नेक्सस सर्वर नहीं चलाना चाहता, और क्योंकि यह एक कांटा है, मैं इसे आसानी से oss.sonatype.org पर तैनात नहीं कर सकता।

मैं यह करना चाहता हूं कि इसे गीथूब में तैनात करना है ताकि अन्य इसे मावेन का उपयोग कर सकें। ऐसा करने का सबसे अच्छा तरीका क्या है?


5
ओएसएस सोनाटाइप में आप किस लाइसेंसिंग समस्या का सामना कर रहे हैं? बस उत्सुक मैं इसे खुद का उपयोग करने के बाद से।
आर्किमिडीज ट्रेजानो

5
एक उपकरण है जो आपको सीधे मावेन के माध्यम से अपने गिटहब रेपो को उजागर करने की अनुमति देता है। jitpack.io stackoverflow.com/a/28483461/3975649
मेट्रीमैन

1
गितूब ने एक पैकेज रजिस्ट्री की भी घोषणा की जो मावेन का समर्थन करती है। वर्तमान में सार्वजनिक-बीटा में: github.com/features/package-registry
Kaan

जवाबों:


483

सबसे अच्छा समाधान जो मैंने पाया है, इन चरणों में शामिल हैं:

  1. mvn-repoअपनी मावेन कलाकृतियों की मेजबानी के लिए एक शाखा बनाएं ।
  2. अपनी कलाकृतियों को गितुब में धकेलने के लिए जीथब साइट-मावेन-प्लगइन का उपयोग करें ।
  3. अपने रिमोट mvn-repoको मावेन रिपॉजिटरी के रूप में उपयोग करने के लिए मावेन को कॉन्फ़िगर करें ।

इस दृष्टिकोण का उपयोग करने के कई लाभ हैं:

  • मावेन कलाकृतियों को एक अलग शाखा में अपने स्रोत से अलग रखा जाता है जिसे कहा जाता है mvn-repo, जैसे कि जीथब पृष्ठ को एक अलग शाखा में रखा जाता है gh-pages(यदि आप गितुब पृष्ठों का उपयोग करते हैं)
  • कुछ अन्य प्रस्तावित समाधानों के विपरीत, यह आपके साथ संघर्ष नहीं करता है gh-pagesयदि आप उनका उपयोग कर रहे हैं।
  • स्वाभाविक रूप से तैनाती लक्ष्य के साथ संबंध बनाता है ताकि सीखने के लिए कोई नई मावेन कमांड न हों। mvn deployजैसा आप सामान्य रूप से करते हैं वैसे ही उपयोग करें

जिस तरह से आप दूरस्थ मावेन रेपो में कलाकृतियों को तैनात करते हैं mvn deploy, उसका उपयोग करना है , तो चलो इस समाधान के लिए उस तंत्र में पैच करें।

सबसे पहले, मावेन को अपने लक्ष्य निर्देशिका के अंदर एक अस्थायी मंचन स्थान पर कलाकृतियों को तैनात करने के लिए कहें। इसे अपने में जोड़ें 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। अगला कदम यह है कि उस निर्देशिका को GitHub पर अपलोड करना है।

अपनी प्रमाणीकरण जानकारी जोड़ें ~/.m2/settings.xmlताकि गिटहब GitHub 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कि कोई भी आपके पासवर्ड को फ़ाइल में नहीं पढ़ सकता है। यदि कोई व्यक्ति यह जानता है कि पासवर्ड फ़ाइल के लिए साइट-मावेन-प्लग-इन कैसे बनाया जाए, तो इसकी आवश्यकता है कि आप इसे कॉन्फिगर करें।)

फिर GitHub site-maven-pluginको उस नए सर्वर के बारे में बताएं जिसे आपने अपने पोम में निम्नलिखित जोड़कर कॉन्फ़िगर किया है:

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

अंत में, Github पर 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फिर से चलाओ। आपको अपने स्थानीय स्टेजिंग रिपॉजिटरी में फ़ाइलों को लक्ष्य निर्देशिका में "अपलोड" मावेन-तैनाती-प्लगइन देखना चाहिए, फिर साइट-मावेन-प्लगइन उन फ़ाइलों को कम करके सर्वर पर धकेल दें।

[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

एक और कदम है जो आप उठाना चाहते हैं, जो कि किसी भी पोम को कॉन्फ़िगर करना है जो आपके पॉम पर निर्भर करता है यह जानने के लिए कि आपका रिपॉजिटरी कहां है। निम्नलिखित स्निपेट को किसी भी प्रोजेक्ट के पोम में जोड़ें जो आपकी परियोजना पर निर्भर करता है:

<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>

अब किसी भी परियोजना को आपकी जार फ़ाइलों की आवश्यकता होती है, वे स्वचालित रूप से आपके गितुब मावेन भंडार से डाउनलोड करेंगे।

संपादित करें: टिप्पणियों में वर्णित समस्या से बचने के लिए ('त्रुटि बनाने की गलती: अमान्य अनुरोध।' गुण / नाम 'के लिए, nil एक स्ट्रिंग नहीं है।'), सुनिश्चित करें कि आप github पर अपनी प्रोफ़ाइल में नाम दर्ज करते हैं।


25
ध्यान दें कि यह समाधान आपकी पिछली कलाकृतियों को हर बार आपके द्वारा तैनात किए जाने के बाद अधिलेखित कर देगा। यह स्नैपशॉट रिपॉजिटरी के लिए उपयुक्त है, लेकिन जारी की गई कलाकृतियों के लिए नहीं। उस व्यवहार को अक्षम करने के लिए, <merge>true</merge>अपनी साइट-मावेन-प्लगइन कॉन्फ़िगरेशन में सेट करें। यदि आप ऐसा करते हैं, हालाँकि, मुझे लगता है कि आपको मैन्युअल रूप से mith-repo शाखा को github में बनाना होगा और पहली बार अपनी सभी फ़ाइलों को हटाना होगा।
21

13
+1 चतुर और अच्छी तरह से प्रस्तुत किया। मेरी एकमात्र आलोचना यह है कि आपने मावेन प्लगइन्स साइट का लिंक शामिल नहीं किया है: github.com/github/maven-plugins । Thx मैं अपने Maven साइट को github पर प्रकाशित करने का एक तरीका ढूंढ रहा था!
मार्क ओ'कॉनर

7
जब Github पर टू-फैक्टर प्रमाणीकरण का उपयोग किया जाता है तो यह दृष्टिकोण काम नहीं करता है। : यहाँ अंक में मेरी टिप्पणी देखें 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 टोकन का उपयोग करने का सुझाव दूंगा। आप इसे 'Settings-> Applications-> Personal Access टोकन' में जनरेट कर सकते हैं। से भी आप इसे POM में इनलाइन कर सकते हैं और टोकन को पर्यावरण चर के रूप में स्टोर कर सकते हैं। <github.global.userName>YourUserName</github.global.userName> <github.global.password>${GITHUB_OAUTH_TOKEN</github.global.password>
फ्लोरियन लोच

120

GitHub को Maven Repository के रूप में उपयोग न करें।

संपादित करें: इस विकल्प को बहुत नीचे वोट मिलते हैं, लेकिन कोई टिप्पणी क्यों नहीं। यह वास्तव में GitHub पर होस्ट करने की तकनीकी क्षमताओं की परवाह किए बिना सही विकल्प है। GitHub पर होस्टिंग नीचे उल्लिखित सभी कारणों के लिए गलत है और टिप्पणियों के बिना मैं आपके मुद्दों को स्पष्ट करने के उत्तर को बेहतर नहीं कर सकता।

सर्वश्रेष्ठ विकल्प - मूल परियोजना के साथ सहयोग करें

सबसे अच्छा विकल्प मूल परियोजना को मनाने के लिए अपने परिवर्तनों को शामिल करना और मूल के साथ रहना है।

वैकल्पिक - अपना खुद का कांटा बनाए रखें

चूंकि आपने एक ओपन सोर्स लाइब्रेरी खोली है, और आपका कांटा भी ओपन सोर्स है, आप अपने कांटे को मावेन सेंट्रल ( सेंट्रल रिपॉजिटरी में कलाकृतियों को अपलोड करने के लिए गाइड पढ़ें ) को एक नया groupIdऔर शायद एक नया रूप देकर अपलोड कर सकते हैं artifactId

केवल इस विकल्प पर विचार करें यदि आप इस कांटे को तब तक बनाए रखने के लिए तैयार हैं जब तक कि मूल परियोजना में बदलाव शामिल न हो जाएं और फिर आपको इसे छोड़ देना चाहिए।

वास्तव में कड़ी मेहनत पर विचार करें कि क्या एक कांटा सही विकल्प है। 'कांटा क्यों नहीं' के लिए असंख्य Google परिणाम पढ़ें

विचार

जार के साथ अपनी रिपॉजिटरी को फुलाने से कोई लाभ नहीं है

एक जार outputआपकी परियोजना का एक हिस्सा है, इसे इसके किसी भी समय पुनर्जीवित किया जा सकता है inputs, और आपके गिटहब रेपो में केवल शामिल होना चाहिए inputs

मुझे विश्वास नहीं है? फिर 'git स्टोर बायनेरीज़ इन गिट' के लिए Google परिणामों की जाँच करें ।

GitHub की बड़ी फ़ाइलों के साथ काम करना आपको एक ही बात बताएगा। माना जाता है कि जार बड़े नहीं हैं, लेकिन वे स्रोत कोड से बड़े हैं और एक बार जार को एक रिलीज के द्वारा बनाया गया है, उनके पास संस्करण होने का कोई कारण नहीं है - यही एक नई रिलीज के लिए है।

अपने pom.xml में कई रिपोज़ को परिभाषित करना आपके निर्माण को धीमा कर देता है

स्टीफन कोनोली कहते हैं :

अगर कोई आपके रेपो को जोड़ता है तो वे अपने निर्माण प्रदर्शन को प्रभावित करते हैं क्योंकि अब उनके पास कलाकृतियों की जांच करने के लिए एक और रेपो है ... यह एक बड़ी समस्या नहीं है यदि आपको केवल एक रेपो जोड़ना है ... लेकिन समस्या बढ़ती है और अगली बात जो आपको पता है मावेन बिल्ड हर कलाकृतियों के लिए 50 रिपोज की जाँच कर रहा है और निर्माण समय एक कुत्ता है।

ये सही है! मावेन को आपके द्वारा परिभाषित प्रत्येक रिपॉजिटरी के खिलाफ आपके pom.xml में परिभाषित प्रत्येक विरूपण साक्ष्य (और इसकी निर्भरता) की जांच करने की आवश्यकता है , क्योंकि एक नया संस्करण उन रिपॉजिटरी में से किसी में उपलब्ध हो सकता है।

इसे अपने लिए आज़माएं और आप एक धीमी गति के निर्माण का दर्द महसूस करेंगे।

कलाकृतियों के लिए सबसे अच्छी जगह मावेन सेंट्रल में है, क्योंकि जार के लिए केंद्रीय स्थान है, और इसका मतलब है कि आपका निर्माण केवल कभी भी इस स्थान की जांच करेगा ।

आप परिचय के लिए मावेन के दस्तावेज में रिपॉजिटरी के बारे में कुछ और पढ़ सकते हैं


3
पूरी तरह से सहमत हैं, और उन कांटे के लिए समझ में आता है जिन्हें आप थोड़ी देर के लिए चारों ओर रखना चाहते हैं। लेकिन यह एक मौजूदा परियोजना के लिए सिर्फ एक छोटे पैच के लिए बहुत अधिक ओवरहेड हो सकता है।
इम

5
मुझे संदेह है कि गितुब को इसमें समस्या है, क्योंकि उन्होंने प्लगइन लिखा था जो इस क्षमता को सक्षम करता है। मैं मानता हूँ कि यह विचार से कम है, लेकिन c'est la vie।
Phy6

4
सोनटाइप पर एक ओपन सोर्स प्रोजेक्ट को तैनात करना हमेशा संभव नहीं होता है। उदाहरण के लिए, जब आपका प्रोजेक्ट किसी अन्य ओपन सोर्स प्रोजेक्ट पर निर्भर करता है, जो पहले से ही तैनात नहीं है (और इसे तैनात नहीं किया जा सकता क्योंकि यह सोनटाइप आवश्यकताओं को पूरा नहीं करता है)।
गाब

1
@ गैब तब आपकी निर्भरता वास्तव में खुला स्रोत नहीं है। आपको दूसरे प्रोजेक्ट से संपर्क करना चाहिए और इसे समझाना चाहिए और उनसे अपनी लाइसेंसिंग को ठीक करवाना चाहिए। (सूर्य अतीत में इस व्यवहार का दोषी था)
Bae

1
@Bae यह लाइसेंस का सवाल नहीं है। कुछ परियोजना के मालिक केंद्रीय पर प्रकाशित नहीं करने का निर्णय लेते हैं क्योंकि यह उनकी प्राथमिकता नहीं है। आपका रास्ता वास्तविक दुनिया में संभव नहीं है। अगर आप परीक्षण करना चाहते हैं: केंद्रीय कोड . google.com/p/sd-dss पर प्रकाशित करने के लिए इसे मनाएं । यह ईयू समुदाय द्वारा वित्त पोषित एक बड़ा ओपन सोर्स प्रोजेक्ट है :)
गाब

48

आप अपने GitHub रिपॉजिटरी को Maven विरूपण साक्ष्य के रूप में उजागर करने के लिए JitPack (सार्वजनिक गिट रिपॉजिटरी के लिए मुफ़्त) का उपयोग कर सकते हैं । यह बहुत आसान है। आपके उपयोगकर्ताओं को इसे उनके 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>

जैसा कि कहीं और उत्तर दिया गया है कि JitPack आपके GitHub रेपो का निर्माण करेगा और जार की सेवा करेगा। आवश्यकता यह है कि आपके पास बिल्ड फ़ाइल और GitHub रिलीज़ हो।

अच्छी बात यह है कि आपको तैनाती और अपलोड करने की आवश्यकता नहीं है। चूंकि आप अपनी खुद की कलाकृतियों के भंडार को अपनी आवश्यकताओं के लिए एक अच्छा मैच नहीं बनाए रखना चाहते थे।


JitPack बहुत अच्छा है, लेकिन आपको हर GroupId को बदलने के लिए मजबूर करता है जो आपके पास है। वे कहते हैं कि इससे बचा जा सकता है, लेकिन इसके लिए आवश्यक है कि आप अपनी कंपनी के DNS में एक प्रविष्टि जोड़ें, जो कि ज्यादातर मामलों में पूरी तरह से अव्यावहारिक है। मैं एक बार जेपी के साथ कोशिश कर रहा हूं, फिर मैंने फैसला किया कि आगे बढ़ने के लिए यह बहुत बेवकूफी है।
zakmck

1
अपनी परियोजनाओं के GroupId को बदलना आवश्यक नहीं है। आप अभी भी 'com.github.User' groupId का उपयोग करके उन परियोजनाओं को स्थापित कर सकते हैं। लेकिन शायद आपके उपयोग का मामला अलग है।
बेन्सन

हां, बहुत है। क्योंकि मेरे पास पहले से ही उनके संगठन और बाहरी उपयोगकर्ताओं के आसपास दसियों हैं, और क्योंकि मैं उन पर अपना ब्रांड चाहता हूं। मुझे अपने समूह में शामिल करने की कोशिश करने के लिए कोई कितना मूर्ख हो सकता है I यह उन चीजों में से एक है, जिनके कारण मैं करियर बदलने की सोच रहा हूं।
zakmck

इसके अलावा, मुझे जेपी लोगों के लिए इस तरह की आवश्यकता को मुझ पर फेंकने की कोई वास्तविक आवश्यकता नहीं दिखती है (वे रिपोजिटरी कल्पना से मैवेन अनुरोधों को रोक सकते हैं)।
जक्कम

1
अच्छा विचार है, मैंने इसे किया है: github.com/jitpack/jitpack.io/issues/209 , धन्यवाद :-)
zakmck

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>

अंत में अपनी सेटिंग में रिपॉजिटरी एक्सेस को सेटअप करना सुनिश्चित करें। xml

इसे अपने सर्वर सेक्शन में जोड़ें

    <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>

अंत में, यदि आपके पास कोई मानक php होस्टिंग है, तो आप वेबडाव क्षमताओं को जोड़ने के लिए सब्रेड्रेड की तरह कुछ का उपयोग कर सकते हैं।

लाभ: आपके पास अपनी मावेन रिपॉजिटरी डाउनसाइड्स हैं: आपके पास नेक्सस में प्रबंधन क्षमताओं में से कोई भी नहीं है; आपको कहीं न कहीं वेबदव सेटअप की आवश्यकता है


9

2019 के बाद से अब आप Github पैकेज रजिस्ट्री नामक नई कार्यक्षमता का उपयोग कर सकते हैं ।

मूल रूप से प्रक्रिया है:

  • गितुब सेटिंग्स से एक नया व्यक्तिगत एक्सेस टोकन जेनरेट करें
  • अपने में रिपॉजिटरी और टोकन जानकारी जोड़ें settings.xml
  • का उपयोग कर तैनात

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

2019 तक, यह सबसे अच्छा विकल्प है।
HRJ

1
लेकिन किसी और द्वारा इसका उपयोग करने के लिए, ऐसा लगता है कि उसे सेटिंग्स को कॉन्फ़िगर करने की आवश्यकता है। संबंधित URL और सामान्य जानकारी के साथ
xml

बहुत अजीब ... आप अपना सार्वजनिक पैकेज बनाते हैं, लेकिन दूसरे लोगों को इसे प्राप्त करने से पहले प्रमाणीकरण की आवश्यकता होती है
अमेरिकफुल

हालाँकि, निजी रेपो के लिए, usages / महीना प्रमाणित करने के बाद, मूल्य निर्धारण चित्र में आता है
लोकेश्वर दर्जी

8

एक विकल्प के रूप में, बिंट्रे मावेन रिपॉजिटरी की मुफ्त होस्टिंग प्रदान करता है। यदि आप पूरी तरह से ग्रुपआईडी का नाम नहीं बदलना चाहते हैं, तो यह संभवतः सोनाटाइप ओएसएस और मेवेन सेंट्रल का एक अच्छा विकल्प है । लेकिन कृपया, कम से कम अपने बदलावों को एकीकृत करने या नाम बदलने और सेंट्रल में प्रकाशित करने का प्रयास करें। यह दूसरों के लिए अपने कांटे का उपयोग करना बहुत आसान बनाता है।


3
मैं विश्वास नहीं कर सकता जब मैंने कोशिश की, लेकिन बिंट्रे स्नैपशॉट का समर्थन नहीं करता है। निकम्मा।
zakmck

6
यह अब स्वतंत्र नहीं है। $ 150 प्रति माह।
AndroidDev

मुझे लगता है कि यह ओपन सोर्स सॉफ़्टवेयर प्रोजेक्ट्स के लिए शुल्क है: jfrog.com/open-source
iBiber

0

यदि आपके पास केवल aarया jarफ़ाइल है, या केवल प्लगइन्स का उपयोग नहीं करना चाहते हैं - मैंने एक सरल शेल स्क्रिप्ट बनाई है । आप इसके साथ इसे प्राप्त कर सकते हैं - अपनी कलाकृतियों को जीथब को प्रकाशित कर सकते हैं और इसे सार्वजनिक मावेन रेपो के रूप में उपयोग कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.