2011-11-23 12 views
10

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

<?xml version="1.0" encoding="UTF-8"?> 
<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.maximus</groupId> 
    <artifactId>adminbuild</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <name>adminbuild</name> 

    <build> 
    <sourceDirectory>src/main/java</sourceDirectory> 
    <testSourceDirectory>src/test/java</testSourceDirectory> 
    <outputDirectory>target</outputDirectory> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>1.7</version> 
     <executions> 
      <execution> 
      <id>attach-artifacts</id> 
      <phase>package</phase> 
      <goals> 
       <goal>attach-artifact</goal> 
      </goals> 
      <configuration> 
       <artifacts> 
       <artifact> 
        <file>${basedir}/../../resources/dependencies/java/customjar1.jar</file> 
        <type>jar</type> 
       </artifact> 
       <artifact> 
        <file>${basedir}/../../resources/dependencies/java/customjar2.jar</file> 
        <type>jar</type> 
       </artifact> 
       </artifacts> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

मेरे परियोजनाओं है कि इन जार का उपयोग [customjar1.jar, customjar2.jar] उपरोक्त पोम फ़ाइल [adminbuild] पर अपनी निर्भरता है।

[ERROR] Failed to execute goal org.codehaus.mojo:build-helper-maven-plugin:1.7:attach-artifact (attach-artifacts) on project adminbuild: The artifact with same type and classifier: jar:null is used more than once. -> [Help 1] 

बाद mvn -version आदेश का आउटपुट है:

जब मैं mvn clean install आदेश पर अमल, मैं निम्नलिखित त्रुटि मिलती है

Apache Maven 3.0.3 (r1075438; 2011-02-28 23:01:09+0530) 
Maven home: C:\maven 
Java version: 1.6.0_26, vendor: Sun Microsystems Inc. 
Java home: C:\Java\jdk1.6.0_26\jre 
Default locale: en_IN, platform encoding: Cp1252 
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows" 

ऐसा लगता है कि है जिस तरह से मैं कलाकृतियों संलग्न कर रहा हूँ गलत। क्या मुझे एक ही पोम फ़ाइल में एकाधिक कलाकृतियों को संलग्न नहीं करना चाहिए? यदि हां तो कैसे। कृपया मदद करे।

उत्तर

6

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

अपने मैवेन भंडार में फ़ाइलों को जोड़ने के लिए ताकि वे निर्भरताओं के रूप में उपलब्ध हों, आपको install-file लक्ष्य का उपयोग करना चाहिए।

संपादित करें: संलग्न कलाकृतियों को उसी समूह द्वारा पहचाना जाता है Id और artifactId आपके मुख्य प्रोजेक्ट के रूप में, लेकिन एक अलग वर्गीकरण के साथ। आपकी कॉन्फ़िगरेशन में, आपने वर्गीकरण निर्दिष्ट नहीं किया है, इसलिए त्रुटि संदेश।

2

आप इन कस्टम जारों को नेक्सस जैसे रिपोजिटरी मैनेजर में रखना चाहते हैं ताकि उन्हें सामान्य निर्भरता जार की तरह डाउनलोड/इस्तेमाल किया जा सके।

मान लीजिए कि यह संभव नहीं है और यह देखते हुए कि ये जार सुप्रसिद्ध स्थान पर हैं, शायद आप इन कस्टम जार को system स्कोप के साथ उन परियोजनाओं में निर्दिष्ट कर सकते हैं जिनकी आवश्यकता है?

<project> 
    ... 
    <dependencies> 
    <dependency> 
     <groupId>my-group</groupId> 
     <artifactId>customjar1</artifactId> 
     <version>a.b.c</version> 
     <scope>system</scope> 
     <systemPath>${basedir}/../../resources/dependencies/java/customjar1.jar</systemPath> 
    </dependency> 
    </dependencies> 
    ... 
</project> 
1

मैंने बहु-मॉड्यूल के साथ ऐसा करने के लिए एक माध्यमिक प्रोजेक्ट का उपयोग किया।

https://stackoverflow.com/q/7908872/242042

संबंधित मुद्दे