2009-06-12 18 views
8

मै मैवन के लिए नया हूं और मेरी कंपनी के लिए निर्माण बनाने पर काम कर रहा हूं। हम मेवेन सेंट्रल रिपोजिटरी से कनेक्ट नहीं करना चाहते हैं, और हमारे पास सुपर पोम में निर्दिष्ट की तुलना में src और test code के लिए एक अलग निर्देशिका संरचना है। मुझे लगता है कि इसे संभालने का सबसे अच्छा तरीका एक ग्राहक सुपर पोम बनाना है, लेकिन मुझे आश्चर्य है - मैं वास्तव में सुपर पोम कहां डाल सकता हूं ताकि मेरा प्रोजेक्ट पोम्स इसका संदर्भ दे सके? क्या यह कहीं भंडार में जाता है? यदि हां, तो कहाँ?मेवेन सुपर पीओएम

धन्यवाद, जेफ

उत्तर

16

मेरे सुझाव है कि आप एक माता पिता पोम जहाँ से अपनी परियोजनाओं को अपनी सेटिंग्स प्राप्त कर सकते हैं बनाने के लिए है। यह अभिभावक पीओएम बस एक और मेवेन 2 प्रोजेक्ट है, लेकिन "जार" के बजाय "पोम" प्रकार के साथ।

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.company.projectname</groupId> 
    <artifactId>projectname</artifactId> 
    <packaging>pom</packaging> 
    <version>1.0</version> 
    <name>projectname</name> 
    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.5</version> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 
    <properties> 
     <superprop1>this property is available in all child projects</superprop1> 
     <superprop2>this property is available in all child projects</superprop2> 
     <superprop3>this property is available in all child projects</superprop3> 
    </properties> 
</project> 

और परियोजना का एक बच्चा ऐसा दिखाई दे सकता:

उदाहरण के लिए, अगर आप इस तरह एक माता पिता पोम हो सकता था

<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/maven-v4_0_0.xsd"> 
    <parent> 
     <artifactId>projectname</artifactId> 
     <groupId>com.company.projectname</groupId> 
     <version>1.0</version> 
    </parent> 
    <modelVersion>4.0.0</modelVersion>   
    <artifactId>child-project</artifactId> 
    <packaging>jar</packaging> 
    <name>child-project</name> 
    <description> 
     My child project 
    </description> 
</project> 

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

3

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

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

 
<?xml version="1.0" encoding="UTF-8"?> 
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <profiles> 
    <profile> 
     <repositories> 
     <repository> 
      <snapshots> 
      <enabled>false</enabled> 
      </snapshots> 
      <id>central</id> 
      <name>all</name> 
      <url>https://server.mycompany.com/artifactory/all</url> 
     </repository> 
     <repository> 
      <snapshots /> 
      <id>snapshots</id> 
      <name>all</name> 
      <url>https://server.mycompany.com/artifactory/all</url> 
     </repository> 
     </repositories> 
     <pluginRepositories> 
     <pluginRepository> 
      <snapshots> 
      <enabled>false</enabled> 
      </snapshots> 
      <id>central</id> 
      <name>all</name> 
      <url>https://server.mycompany.com/artifactory/all</url> 
     </pluginRepository> 
     <pluginRepository> 
      <snapshots /> 
      <id>snapshots</id> 
      <name>all</name> 
      <url>https://server.mycompany.com/artifactory/all</url> 
     </pluginRepository> 
     </pluginRepositories> 
     <id>artifactory</id> 
    </profile> 
    </profiles> 
    <activeProfiles> 
    <activeProfile>artifactory</activeProfile> 
    </activeProfiles> 
</settings> 
:

यहाँ एक artifactory उत्पन्न settings.xml फ़ाइल का एक उदाहरण है

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