2011-06-21 15 views
7

मैं एंटी के साथ काम का एक गुच्छा करने के लिए मेवेन-एंट्रून-प्लगइन का उपयोग कर रहा हूं, जो अंततः एक ज़िप फ़ाइल में परिणाम देता है। मैं ज़िप फ़ाइल को हमारे मेवेन सर्वर (आर्टिफैक्टरी) में तैनात करना चाहता हूं। मेवेन-एंट्रून-पार्ट इरादे के रूप में काम करता है और सफलतापूर्वक ज़िप फ़ाइल बनाता है;मैं maven-antrun-plugin के साथ बनाई गई ज़िप फ़ाइल को कैसे तैनात कर सकता हूं?

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy (default-deploy) on project projectname: The packaging for this project did not assign a file to the build artifact

मेरे पोम फ़ाइल इस प्रकार है::

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.company.division</groupId> 
    <artifactId>projectname</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <parent> 
     <groupId>com.company.product</groupId> 
     <artifactId>parentproject</artifactId> 
     <version>1.0.0</version> 
    </parent> 

    <distributionManagement> 
     <snapshotRepository> 
      <id>artifactory</id> 
      <name>artifactory-snapshots</name> 
      <url>http://localartifactoryserver/artifactory/libs-snapshot-local</url> 
      <uniqueVersion>false</uniqueVersion> 
     </snapshotRepository> 
    </distributionManagement> 

    <dependencies> 
     <!-- Some dependencies... --> 
    </dependencies> 

    <build> 
     <plugins> 
      <!-- Compiler plugin --> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
        <encoding>UTF8</encoding> 
        <optimize>true</optimize> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <version>1.6</version> 
       <executions> 
        <execution> 
         <id>compile</id> 
         <phase>compile</phase> 
         <configuration> 
          <target> 
           <!-- Do lots of other stuff with Ant. --> 

           <!-- Create a zip file. --> 
           <zip basedir="mydir" destfile="${WORKSPACE}/MyZip.zip" /> 
          </target> 
         </configuration> 
         <goals> 
          <goal>run</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-deploy-plugin</artifactId> 
       <version>2.6</version> 
       <configuration> 
        <groupId>${project.groupId}</groupId> 
        <artifactId>${project.artifactId}</artifactId> 
        <version>${project.version}</version> 
        <packaging>zip</packaging> 
        <file>MyZip.zip</file> 
        <url>${project.distributionManagement.snapshotRepository.url}</url> 
       </configuration> 
       </plugin> 
     </plugins> 
    </build> 
</project> 

जब मैं mvn -U -pl projectname clean deploy के साथ इस आह्वान (मूल पोम से) मैं दौरान ऊपर उल्लिखित त्रुटि मिलती है लेकिन तैनाती निम्न त्रुटि संदेश के साथ विफल तैनाती चरण। क्या कोई जानता है कि मैं क्या गलत कर रहा हूं या मैं इसे कैसे ठीक कर सकता हूं?

उत्तर

10

समाधान है कि मेरे लिए काम किया (मुझे यकीन है कि अगर यह आदर्श है, यह नहीं बल्कि hackish लगता है नहीं कर रहा हूँ) deploy:deploy-file लक्ष्य करने के लिए स्विच करने के लिए किया गया था:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <version>2.6</version> 
    <goals> 
     <goal>deploy-file</goal> 
    </goals> 
    <configuration> 
     <repositoryId>artifactory</repositoryId> 
     <packaging>zip</packaging> 
     <generatePom>true</generatePom> 
     <url>${project.distributionManagement.snapshotRepository.url}</url> 
     <artifactId>${project.artifactId}</artifactId> 
     <groupId>${project.groupId}</groupId> 
     <version>${project.version}</version> 
     <file>${WORKSPACE}/MyZip.zip</file> 
    </configuration> 
</plugin> 

और यह स्पष्ट रूप से आह्वान:

mvn -U -X -pl projectname clean install deploy:deploy-file 
+0

आपकी परियोजना का मानना ​​है कि पोम ', किसी को सलाह दी जानी चाहिए कि इस तरह की परियोजना की पारगमन निर्भरता को हल नहीं किया जाएगा (बाद में अन्य परियोजनाओं द्वारा), यदि आप इस तरह से कलाकृति को तैनात करते हैं। – carlspring

+0

क्या हल किया जाएगा आर्टिफैक्ट स्वयं ही होगा। – carlspring

+0

एक जीवन बचाओ। मुझे कमांड लाइन पर ऐसा करना था। यह जानना अच्छा लगता है कि इसे pom.xml फ़ाइल के अंदर कैसे करना है। –