2009-06-11 10 views
5

मुझे एक जार फ़ाइल बनाने की आवश्यकता है जिसमें अन्य (बाहरी परियोजनाएं ') मेवेन कलाकृतियों शामिल हैं।मैवेन में गैर-संकलन निर्भरताओं को निर्दिष्ट करें और उन्हें संसाधनों के रूप में पैकेज करें

कलाकृतियों को बिना किसी प्रसंस्करण के src/main/resources में सामान की तरह शामिल किया जाना है। भले ही वे जार फाइलें हों, फिर भी वे मेरे कोड के लिए समय निर्भरता संकलित नहीं कर रहे हैं और क्लासपाथ में नहीं जोड़ा जाना चाहिए, न कि संकलन, परीक्षण, या रनटाइम चरणों में।

मैं इसे फाइल डाउनलोड करके और उन्हें src/main/resources में रखकर प्राप्त कर सकता हूं, लेकिन मैं उन्हें मेवेन रिपोजिटरी का उपयोग करके हल कर दूंगा।

+0

क्या आप एक उबर युद्ध बनाने की कोशिश कर रहे हैं? यदि ऐसा है तो आपको छाया प्लगइन (http://maven.apache.org/plugins/maven-shade-plugin/) पर देखना चाहिए –

उत्तर

2

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

<plugin> 
     <artifactId>maven-dependency-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>copy</id> 
      <goals> 
       <goal>copy-dependencies</goal> 
      </goals> 
      <configuration> 
       <artifactItems> 
       <artifactItem> 
        <groupId>id.of.the.project.group.to.include</groupId> 
        <artifactId>id-of-the-project's-artifact-to-include</artifactId> 
        <version>${pom.version}</version> 
       </artifactItem> 
       </artifactItems> 
       <includeArtifactIds>id-of-the-project's-artifact-to-include</includeArtifactIds> 
       <outputDirectory>${project.build.directory}/etc-whatever-you-want-to-store-the-dependencies</outputDirectory> 
      </configuration> 
      </execution> 
    </executions> 
</plugin> 
2

प्रक्रिया-संसाधन चरण के दौरान target/classes निर्देशिका में अपने आवश्यक कलाकृतियों को डाउनलोड करने और रखने के लिए आप dependency plugin का उपयोग कर सकते हैं।

example usage for copying artefacts

1

देखें चूंकि आप कहते हैं कि तुम एक जार के साथ खत्म करना चाहते हैं, एक कस्टम विधानसभा वर्णनकर्ता साथ assembly plugin शायद इस का समाधान होगा।

<dependencySet> जोड़ें और <unpack> विकल्प निर्दिष्ट करें ताकि यह सुनिश्चित किया जा सके कि उन बाहरी कलाकृतियों को आपके जार के अंदर फटकारा जा सके।

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

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