मावेन के साथ फ़ाइलों की प्रतिलिपि बनाने के लिए सर्वोत्तम अभ्यास


193

मेरे पास फाइलें और विभिन्न दस्तावेज हैं जिन्हें मैं Maven2 का उपयोग करके देव वातावरण से देव सर्वर निर्देशिका में कॉपी करना चाहता हूं। अजीब बात है, मावेन इस कार्य में मजबूत नहीं लगता है।

कुछ विकल्प:

  • मावेन में एक कॉपी कार्य का उपयोग करें
<copy file="src/main/resources/config.properties" tofile="${project.server.config}/config.properties"/>
  • चींटी से कॉपी निष्पादित करने के लिए चींटी प्लगइन का उपयोग करें ।

    • प्रकार की ज़िप की एक कलाकृति का निर्माण , पोम के "मुख्य" विरूपण साक्ष्य के साथ जो आमतौर पर प्रकार जार है , फिर उस कलाकृति को रिपॉजिटरी से लक्ष्य निर्देशिका में अनपैक करें

    • मावेन-संसाधन प्लगइन, जैसा कि नीचे बताया गया है।

    • मावेन असेंबली प्लगइन - लेकिन इसके लिए बहुत सी मैनुअल परिभाषाओं की आवश्यकता होती है, जब मैं चीजों को बस और "पारंपरिक रूप से करना चाहता हूं।"

    • यह पृष्ठ भी कॉपी करने करने के लिए एक प्लगइन का निर्माण करने के लिए कैसे पता चलता है!

    • मावेन-अपलोड प्लगइन, जैसा कि नीचे बताया गया है।

    • नकल के साथ मावेन-निर्भरता-प्लगइन , जैसा कि नीचे उल्लेख किया गया है।


ये सभी अनावश्यक रूप से तदर्थ प्रतीत होते हैं: मावेन को उपद्रव और परेशान किए बिना इन मानक कार्यों को करने के लिए उत्कृष्ट माना जाता है।

कोई सलाह?


2
Maven चरणों के साथ एक जीवन चक्र के विचार के आसपास निर्मित होता है, दूरस्थ सर्वर कार्य के लिए रैंडम फ़ाइलों की प्रतिलिपि वास्तव में इसमें फिट नहीं होती है। अपने प्रोजेक्ट को हमेशा समग्र समझें।
एन्द्र

3
"ये सभी अनावश्यक रूप से तदर्थ लगते हैं: मावेन को इन मानक कार्यों को बिना उपद्रव और परेशान करने के लिए उत्कृष्टता के लिए जाना जाता है।" जो आप कर रहे हैं वह एक मानक कार्य नहीं है, प्रति से। यदि आपकी कलाकृतियों में एक युद्ध / कान था, तो यह कार्गो प्लगइन (कार्गो .codehaus.org/Maven2+plugin#Maven2plugin-get…) का उपयोग करने के समान सरल होगा। आप जो वर्णन कर रहे हैं वह अत्यधिक विशिष्ट है कि आप तैनाती कैसे कर रहे हैं और मानक जावा अनुप्रयोग कंटेनर तैनाती नहीं कर रहे हैं। मावेन वास्तव में लाइव सर्वरों के लिए समय की गतिविधियों को संभालने के लिए तैयार नहीं है - यह गतिविधियों / निर्माण के लिए अधिक तैयार है।
व्हेल

67
@ आंद्रे: मैं उस तर्क को बार-बार सुनता हूं, लेकिन अफसोस, यह बी.एस. समग्र रूप से परियोजना के बारे में सोचने में कुछ भी गलत नहीं है, लेकिन किसी भी सभ्य निर्माण प्रणाली के हिस्से में कार्यक्षमता होनी चाहिए जो मुझे सीधे अग्रेषित तरीके से कार्य एक्स को प्राप्त करने की अनुमति देती है, जैसे कि फ़ाइलों की प्रतिलिपि बनाना, और मावेन ऐसा नहीं कर सकते। वहाँ एक कारण है कि इतने सारे प्रोजेक्ट्स हाल ही में पॉप-अप हुए हैं जो बिल्ड-स्क्रिप्ट-एंड-कोड प्रतिमान (जैसे ग्रैड, एसबीटी, या बिल्डर) को गले लगाते हैं।
मथायस

मैं कलाकृतियों के निर्माण के लिए एक pom.xml रखने और किसी दिए गए विरूपण साक्ष्य को तैनात करने के लिए अन्य की सिफारिश करूंगा ।
थोरबजोरन रावन एंडरसन

ऊपर दिए गए सभी सुझाव अभी भी मुझे एक अलग परियोजना / कलाकृति से एक विशिष्ट फाइल को मावेन प्रोजेक्ट में कॉपी करने की अनुमति नहीं देते हैं। मेरे पास आर्टवर्क में src / main / folder के तहत कुछ फाइलें हैं जो जार बन जाती हैं और मैंने डिपेंडेंसी-कॉपी मावेन प्लगइन का उपयोग करने की कोशिश की है, हालांकि मुझे यह कहने का कोई तरीका नहीं मिला है कि मैं कौन सी फाइलें कॉपी करना चाहता हूं और मुझे पूरा जार मिल गया है हर समय असेंबली में फाइल करें। संसाधनों की तरह यहाँ अन्य सभी सुझाव, मुझे प्रोजेक्ट के अंदर संसाधनों के बजाय एक विरूपण साक्ष्य को निर्दिष्ट करने की अनुमति नहीं देते हैं
अलेक्जेंड्रे फिरोरियो

जवाबों:


119

Antrun प्लगइन से दूर मत हटो। सिर्फ इसलिए कि कुछ लोग सोचते हैं कि चींटी और मावेन विरोध में हैं, वे नहीं हैं। यदि आपको कुछ अपरिहार्य वन-ऑफ अनुकूलन करने की आवश्यकता है, तो प्रतिलिपि कार्य का उपयोग करें:

<project>
  [...]
  <build>
    <plugins>
      [...]
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>deploy</phase>
            <configuration>
              <tasks>

                <!--
                  Place any Ant task here. You can add anything
                  you can add between <target> and </target> in a
                  build.xml.
                -->

              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

इस प्रश्न का उत्तर देने में, मैं आपके द्वारा पूछे गए विवरणों पर ध्यान केंद्रित कर रहा हूं। मैं किसी फ़ाइल की प्रतिलिपि कैसे बनाऊँ? प्रश्न और चर नाम मुझे बड़े प्रश्नों की ओर ले जाते हैं जैसे: "क्या सर्वर प्रावधान से निपटने का एक बेहतर तरीका है?" Maven का उपयोग तैनाती की गई कलाकृतियों को बनाने के लिए एक निर्माण प्रणाली के रूप में करें, फिर इन अनुकूलन को अलग-अलग मॉड्यूल या कहीं और पूरी तरह से निष्पादित करें। यदि आपने अपने बिल्ड वातावरण का थोड़ा अधिक हिस्सा साझा किया है, तो एक बेहतर तरीका हो सकता है - कई सर्वरों को व्यवस्थित करने के लिए प्लगइन्स हैं। क्या आप एक असेंबली संलग्न कर सकते हैं जो सर्वर के रूट में अनपैक्ड है? आप किस सर्वर का उपयोग कर रहे हैं?

फिर से, मुझे यकीन है कि एक बेहतर तरीका है।


क्या कार्य विवरणकर्ता अब पदावनत हो गया है?
मैट

3
@ मैट हां, taskपैरामीटर अब पदावनत ( एंट्रॉन प्लगिन ) है। आपको targetइसके बजाय (1.5 के बाद से) का उपयोग करना चाहिए । दुर्भाग्य से ऐसे उदाहरण हैं जो इसे मिलाते हैं; उदाहरण के लिए targetपैरामीटर और version<1.5।
13

यह स्वीकृत उत्तर कैसे हो सकता है? निश्चित रूप से नकल को एक साधारण चीज बनाने के लिए परिवर्तन करने का अनुरोध होना चाहिए।
वोल्फगैंग फ़ाहल

137
<build>
    <plugins>
        ...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.3</version>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include> **/*.properties</include>
            </includes>
        </resource>
    </resources>
    ...
</build>

धन्यवाद @Peter, यह उपयोगी था। मैं अब एंट्रॉन के बजाय रिसोर्स-प्लगइन कॉपी-रिसोर्स गोल का उपयोग करता हूं। उत्तरार्द्ध वास्तव में परिभाषित करने के लिए बहुत सरल और सहज है, लेकिन मैं इसे (संस्करण 1.3) सभी मावेन कस्टम गुणों (<गुण> अनुभाग में परिभाषित) को एंटीरन पास करने के लिए नहीं प्राप्त कर सका, इसलिए मैंने संसाधनों-प्लगइन पर स्विच किया।
कॉर्नेल मासन

2
मुझे लगता है कि यह सही उत्तर था ... जब तक मुझे एहसास हुआ कि संसाधन प्लगइन में एक स्किप कॉन्फ़िगरेशन नहीं है। एंट्रॉन जाने का रास्ता है।
माइक पोस्ट

स्किप प्रोफाइल बनाना मुश्किल नहीं होना चाहिए। एंट्रॉन का उपयोग नहीं किया गया है, इसलिए मैं यह नहीं कह सकता कि कौन सा आसान / बेहतर है
विवेक चावड़ा

40

फ़ाइल उपयोग की प्रतिलिपि बनाने के लिए:

        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.1.0</version>
            <executions>
                <execution>
                    <id>copy-resource-one</id>
                    <phase>install</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>

                    <configuration>
                        <outputDirectory>${basedir}/destination-folder</outputDirectory>
                        <resources>
                            <resource>
                                <directory>/source-folder</directory>
                                <includes>
                                    <include>file.jar</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
           </executions>
        </plugin>

उप-फ़ोल्डर्स के साथ फ़ोल्डर की प्रतिलिपि बनाने के लिए अगले कॉन्फ़िगरेशन का उपयोग करें:

           <configuration>
              <outputDirectory>${basedir}/target-folder</outputDirectory>
              <resources>          
                <resource>
                  <directory>/source-folder</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>              
            </configuration>  

मावेन में फ़िल्टरिंग स्ट्रिंग इंटरपोलेशन को संदर्भित करता है, इसलिए मैं <filtering>उदाहरण के लिए स्क्रिप्ट्स फ़ाइलों का उपयोग करने के लिए अवांछित परिवर्तनों को रोकने के लिए छोड़ दूंगा जो ${...}चर का उपयोग करते हैं।
GeroldBroser ने मोनिका

20

मावेन निर्भरता प्लगइन ने मुझे चींटी कार्यों के साथ बहुत समय बचाने के लिए बचाया:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>install-jar</id>
            <phase>install</phase>
            <goals>
                <goal>copy</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>...</groupId>
                        <artifactId>...</artifactId>
                        <version>...</version>
                    </artifactItem>
                </artifactItems>
                <outputDirectory>...</outputDirectory>
                <stripVersion>true</stripVersion>
            </configuration>
        </execution>
    </executions>
</plugin>

निर्भरता: प्रतिलिपि documentend है, और खोल की तरह अधिक उपयोगी लक्ष्य होते हैं।


3
मैं वर्षों से चींटी का उपयोग नहीं करता था, और मैं इसे इतनी आसान चीज के लिए करना शुरू नहीं करना चाहता। तो इस जवाब के लिए धन्यवाद।
गुस्तेव

17

एक सरल कॉपी-कार्यों के लिए मैं कॉपी-नाम-मावेन-प्लगइन की सिफारिश कर सकता हूं । यह सीधे आगे और उपयोग करने के लिए सरल है:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>com.coderplus.maven.plugins</groupId>
        <artifactId>copy-rename-maven-plugin</artifactId>
        <version>1.0</version>
        <executions>
          <execution>
            <id>copy-file</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <sourceFile>src/someDirectory/test.environment.properties</sourceFile>
              <destinationFile>target/someDir/environment.properties</destinationFile>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

यदि आप एक से अधिक फ़ाइल कॉपी करना चाहते हैं, तो उस <sourceFile>...</destinationFile>हिस्से को बदल दें

<fileSets>
  <fileSet>
    <sourceFile>src/someDirectory/test.environment.properties</sourceFile>
    <destinationFile>target/someDir/environment.properties</destinationFile>
  </fileSet>
  <fileSet>
    <sourceFile>src/someDirectory/test.logback.xml</sourceFile>
    <destinationFile>target/someDir/logback.xml</destinationFile>
  </fileSet>                
</fileSets>

इसके अलावा यदि आप कई चरणों में कई निष्पादन को निर्दिष्ट कर सकते हैं यदि आवश्यक हो, तो दूसरा लक्ष्य "नाम" है, जो कि बस यह कहता है कि बाकी कॉन्फ़िगरेशन समान रहता है। अधिक उपयोग उदाहरणों के लिए उपयोग-पृष्ठ देखें

नोट : यह प्लगइन केवल फाइलों को कॉपी कर सकता है, निर्देशिकाओं को नहीं। (इस सीमा को खोजने के लिए @ james.garriss को धन्यवाद।)


2
हालांकि मुझे यह प्लगइन पसंद है, यह आश्चर्यजनक है कि यह निर्देशिकाओं की नकल नहीं कर सकता है।
james.garriss

3
@ james.garriss मुझे इस सीमा के बारे में पता नहीं था लेकिन दुर्भाग्य से आप सही हैं। मैं इसे अपने उत्तर में संपादित करूँगा, शायद कुछ लोगों द्वारा इसे खोजने का समय बचा लिया जाए।
मोर्टन

7

ऊपर दिया गया चींटी समाधान कॉन्फ़िगर करना सबसे आसान है, लेकिन मुझे एटलसियन से मावेन-अपलोड-प्लगइन का उपयोग करके भाग्य मिला है। मैं अच्छा दस्तावेज़ीकरण प्राप्त करने में असमर्थ था, यहाँ बताया गया है कि मैं इसका उपयोग कैसे करता हूँ:

<build>
  <plugin>
    <groupId>com.atlassian.maven.plugins</groupId>
    <artifactId>maven-upload-plugin</artifactId>
    <version>1.1</version>
    <configuration>
       <resourceSrc>
             ${project.build.directory}/${project.build.finalName}.${project.packaging}
       </resourceSrc>
       <resourceDest>${jboss.deployDir}</resourceDest>
       <serverId>${jboss.host}</serverId>
       <url>${jboss.deployUrl}</url>
     </configuration>
  </plugin>
</build>

ऊपर उल्लिखित "$ {jboss.host}" जैसे चर मेरे ~ / .m2 / settings.xml में परिभाषित किए गए हैं और मावेन प्रोफाइल का उपयोग करके सक्रिय हैं। यह समाधान JBoss के लिए विवश नहीं है, बस यही मैंने अपने चरों का नाम दिया। मेरे पास देव, परीक्षण और लाइव के लिए एक प्रोफ़ाइल है। इसलिए अपने कान को परीक्षण वातावरण में एक jboss उदाहरण में अपलोड करने के लिए मैं निष्पादित करूंगा:

mvn upload:upload -P test

यहाँ settings.xml से एक स्निपेट दिया गया है:

<server>
  <id>localhost</id>
  <username>username</username>
  <password>{Pz+6YRsDJ8dUJD7XE8=} an encrypted password. Supported since maven 2.1</password>
</server>
...
<profiles>
  <profile>
    <id>dev</id>
    <properties>
      <jboss.host>localhost</jboss.host> 
      <jboss.deployDir>/opt/jboss/server/default/deploy/</jboss.deployDir>
      <jboss.deployUrl>scp://root@localhost</jboss.deployUrl>
    </properties>
  </profile>
  <profile>
    <id>test</id>
    <properties>
       <jboss.host>testserver</jboss.host>
       ...

नोट: एटलसियन मावेन रेपो जिसमें यह प्लगइन है: https://maven.atlassian.com/public/

मैं उन स्रोतों को डाउनलोड करने और अंदर के दस्तावेज़ देखने की सलाह देता हूं, जो सभी सुविधाएँ प्रदान करता है।

`


5

ठीक है, ठीक दानेदार कार्यों को करने में मावेन को अच्छा नहीं माना जाता है, यह बैश या चींटी की तरह एक पटकथा भाषा नहीं है, बल्कि यह घोषणात्मक है - आप कहते हैं - मुझे एक युद्ध, या एक कान की आवश्यकता है, और आप इसे प्राप्त करते हैं। हालांकि अगर आपको यह अनुकूलित करने की आवश्यकता है कि युद्ध या कान को अंदर की तरह कैसे दिखना चाहिए, तो आपको एक समस्या है। यह चींटी की तरह सिर्फ प्रक्रियात्मक नहीं है, बल्कि घोषणात्मक है। शुरुआत में इसके कुछ पक्ष हैं, और अंत में बहुत सारे विपक्ष हो सकते हैं।

मुझे लगता है कि प्रारंभिक अवधारणा में ठीक प्लगइन्स होना था, "बस काम" लेकिन अगर आप गैर-मानक सामान करते हैं तो वास्तविकता अलग है।

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


4

मुझे कॉपी-मावेन-प्लगइन के साथ बहुत अच्छा अनुभव हुआ है । मावन-संसाधनों-प्लगइन की तुलना में इसमें बहुत अधिक सुविधाजनक और संक्षिप्त सिंटैक्स है।


8
दुर्भाग्य से, कॉपी-मावेन-प्लगइन मावेन 3.1.x के साथ संगत नहीं है
हकन

2
मुद्दा 3.1 के साथ संगतता को ट्रैक करने वाला मुद्दा है: github.com/evgeny-goldin/maven-plugins/issues/10
koppor

इस प्लगइन के बारे में भूल जाओ ... इसके कांटे देखो
Kukeltje

4

मनमानी फ़ाइलों को कॉपी करने का एक सामान्य तरीका मावेन वैगन परिवहन अमूर्तता का उपयोग करना है । प्रोटोकॉल की तरह के माध्यम से यह विभिन्न स्थलों संभाल कर सकते हैं file, HTTP, FTP, SCPया WebDAV

कुछ प्लगइन्स हैं जो उपयोग के माध्यम से फ़ाइलों को कॉपी करने की सुविधा प्रदान करते हैं Wagon। सबसे उल्लेखनीय हैं:

  • आउट-ऑफ-द-बॉक्स मवन डिप्लॉय प्लगिन

    नहीं है deploy-fileलक्ष्य। यह काफी अनम्य है लेकिन काम पूरा कर सकता है:

    mvn deploy:deploy-file -Dfile=/path/to/your/file.ext -DgroupId=foo 
    -DartifactId=bar -Dversion=1.0 -Durl=<url> -DgeneratePom=false

    उपयोग करने के लिए महत्वपूर्ण नुकसान Maven Deploy Pluginयह है कि यह मावेन रिपॉजिटरी के साथ काम करने के लिए नामित है। यह विशेष संरचना और मेटाडेटा को मानता है। आप देख सकते हैं कि फ़ाइल को नीचे रखा गया है foo/bar/1.0/file-1.0.extऔर चेकसम फाइलें बनाई गई हैं। इसके अलावा कोई रास्ता नहीं है।

  • वैगन मावेन प्लगिन

    upload-singleलक्ष्य का उपयोग करें :

    mvn org.codehaus.mojo:wagon-maven-plugin:upload-single
    -Dwagon.fromFile=/path/to/your/file.ext -Dwagon.url=<url>

    Wagon Maven Pluginनकल के लिए उपयोग सीधा है और सबसे बहुमुखी लगता है।


ऊपर दिए गए उदाहरणों <url>में किसी भी समर्थित प्रोटोकॉल का हो सकता है। मौजूदा वैगन प्रदाताओं की सूची देखें । उदाहरण के लिए

  • स्थानीय रूप से फ़ाइल की प्रतिलिपि बनाना: file:///copy/to
  • दूरस्थ होस्ट चलाने के लिए फ़ाइल की प्रतिलिपि बनाना SSH:scp://host:22/copy/to


कमांड लाइन में ऊपर दिए गए प्लगइन पैरामीटर के उदाहरण। वैकल्पिक रूप से, प्लग इन को सीधे कॉन्फ़िगर किया जा सकता है POM। तब आह्वान बस की तरह होगा mvn deploy:deploy-file@configured-execution-id। या यह विशेष रूप से निर्माण चरण के लिए बाध्य हो सकता है।


कृपया ध्यान दें कि प्रोटोकॉल के SCPलिए काम करने के लिए आपको अपने एक्सटेंशन को परिभाषित करना होगा POM:

<build>
  [...]
  <extensions>
    <extension>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-ssh</artifactId>
      <version>2.12</version>
    </extension>
  </extensions>


यदि आप जिस गंतव्य को प्रमाणीकरण की आवश्यकता के लिए कॉपी कर रहे हैं, तो Serverसेटिंग्स के माध्यम से क्रेडेंशियल्स प्रदान किए जा सकते हैंrepositoryId/ serverIdप्लग इन करने के लिए पारित सेटिंग्स में परिभाषित सर्वर से मेल खाना चाहिए।


3

मैं केवल यह मान सकता हूं कि आपकी $ {project.server.config} संपत्ति कुछ कस्टम परिभाषित है और मानक निर्देशिका लेआउट के बाहर है।

यदि ऐसा है, तो मैं कॉपी कार्य का उपयोग करूंगा।


मान लीजिए कि मैं फाइलों को मानक निर्देशिका लेआउट में डालने का ध्यान रखता हूं। क्या मावेन उन्हें लक्ष्य के रूप में कॉपी कर सकते हैं-जैसे, जिप / जार में नहीं?
जोशुआ फॉक्स

2

एक अन्य तरीका असेंबली प्लगइन का उपयोग करके इन चीजों को एक विरूपण साक्ष्य में बांधना है। फिर आप इन फ़ाइलों को जहाँ आप चाहते हैं उन्हें अनपैक करने के लिए निर्भरता प्लगइन का उपयोग कर सकते हैं। कलाकृतियों की प्रतिलिपि बनाने के लिए निर्भरता प्लगइन में प्रतिलिपि लक्ष्य भी हैं।


1

मैं इस उत्तर के लिए कई अलग-अलग स्रोतों को एक साथ करने में सक्षम था:

...
<repository>
    <id>atlassian</id>
    <name>Atlassian Repo</name>
    <url>https://maven.atlassian.com/content/repositories/atlassian-public</url>
</repository>
...
<dependency>
    <groupId>com.atlassian.maven.plugins</groupId>
    <artifactId>maven-upload-plugin</artifactId>
    <version>1.1</version>
</dependency>
...
<plugin>
    <groupId>com.atlassian.maven.plugins</groupId>
    <artifactId>maven-upload-plugin</artifactId>
    <version>1.1</version>
    <configuration>
        <serverId>jira-repo</serverId>
        <resourceSrc>
            ${project.build.directory}/${project.build.finalName}.${project.packaging}
        </resourceSrc>
        <resourceDest>opt/jira/webapps</resourceDest> <!-- note: no leading slash -->
        <url>scp://root@jira</url>
    </configuration>
</plugin>
...

से ~/.m2/settings.xml:

...
<servers>
  <server>
    <id>jira-repo</id>
    <username>myusername</username>
    <password>mypassword</password>
  </server>
</servers>
...

फिर कमांड चलाएँ: (-X डिबग के लिए है)

mvn -X upload:upload


-1

उपरोक्त कुछ ठीक उत्तरों को संक्षेप में प्रस्तुत करने के लिए: मावेन को मॉड्यूल बनाने और मावेन भंडार के परिणामों को कॉपी करने के लिए डिज़ाइन किया गया है। किसी तैनाती / इंस्टॉलर-इनपुट निर्देशिका के लिए मॉड्यूल की किसी भी नकल को मावेन की कोर कार्यक्षमता के संदर्भ से बाहर किया जाना चाहिए, जैसे चींटी / मावेन कॉपी कमांड के साथ।


चींटी मावेन की मुख्य कार्यक्षमता से संबंधित है और इसलिए वैगन (हालांकि इसके चारों ओर प्लगइन आधिकारिक मावेन कोर प्लगइन नहीं है)।
GeroldBroser ने
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.