2009-09-08 20 views
8

मेरी वर्तमान प्रोजेक्ट में हम अन्य प्लगइन्स पैरामीटर जैसे गुण-मैवेन-प्लगइन या बिल्डनंबर-प्लगइन द्वारा आवश्यक कुछ प्लगइन्स का उपयोग करते हैं।किसी अन्य प्लगइन लक्ष्य को प्लगइन लक्ष्य कैसे बाध्य करें

<?xml version="1.0"?> 
<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>mygroup</groupId> 
    <artifactId>myartifact</artifactId> 
    <packaging>pom</packaging> 
    <version>v0</version> 
    <name>myProject</name> 

    <properties> 
      <env>dev</env> 
    </properties> 

    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>properties-maven-plugin</artifactId> 
      <version>1.0-alpha-2</version> 
      <configuration> 
      <files> 
       <file>${basedir}/configurations/${env}.properties</file> 
      </files> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>initialize</phase> 
        <goals> 
         <goal>read-project-properties</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>buildnumber-maven-plugin</artifactId> 
      <version>1.0-beta-3</version> 
      <executions> 
       <execution> 
        <phase>initialize</phase> 
        <goals> 
         <goal>create</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>com.wakaleo.schemaspy</groupId> 
      <artifactId>maven-schemaspy-plugin</artifactId> 
      <version>1.0</version> 
      <configuration> 
       <databaseType>mysql</databaseType> 
       <database>${database.schema}</database> 
       <host>${database.host}</host> 
       <user>${database.user}</user> 
       <password>${database.pwd}</password> 
       </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

समस्या यह है कि जब आप सीधे एक प्लगइन लक्ष्य पर अमल, लक्ष्यों इनिशियलाइज़ चरण पर आबद्ध (या मान्य) निष्पादित नहीं कर रहे हैं।

$> mvn schemaspy:schemaspy 

वहाँ एक है:

$> mvn org.codehaus.mojo:properties-maven-plugin:read-project-properties schemaspy:schemaspy 

हम उस गुण प्लगइन और buildNumber प्लगइन तो हम टाइप कर सकते हैं हर Maven आदेश के लिए क्रियान्वित किया जा करने की जरूरत है बताना चाहता हूँ: तो स्कीमा जासूस उत्पन्न करने के लिए हम टाइप करने की आवश्यकता ऐसा करने के लिए साफ तरीका (स्क्रिप्टिंग के बिना)?

उत्तर

6

सबसे आसान तरीका ऐसा है तो आप बस mvn पैकेज की तरह कुछ चला सकते हैं एक जीवन चक्र चरण (आप पहले से ही अन्य दो प्लगइन्स ffor यह किया है, विशेष रूप से के रूप में) करने के लिए schemaspy लक्ष्य बाध्य करने के लिए हो सकता है, और सभी तीन प्लग इन हो उचित चरणों में निष्पादित।

यदि आप कुछ परिस्थितियों में केवल schmespy प्लगइन को निष्पादित करना चाहते हैं, तो इसे प्रोफ़ाइल में रखें, फिर इसे सक्रिय करने के लिए mvn पैकेज -P schemaspy चलाएं। इसे प्राप्त करने के लिए कॉन्फ़िगरेशन इस तरह दिखता है:

<profiles> 
    <profile> 
    <id>schemaspy</id> 
    <plugin> 
     <groupId>com.wakaleo.schemaspy</groupId> 
     <artifactId>maven-schemaspy-plugin</artifactId> 
     <version>1.0</version> 
     <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
      <goal>schemaspy</goal> 
      </goals> 
     </execution> 
     </executions> 
     <configuration> 
     <databaseType>mysql</databaseType> 
     <database>${database.schema}</database> 
     <host>${database.host}</host> 
     <user>${database.user}</user> 
     <password>${database.pwd}</password> 
     </configuration> 
    </plugin> 
    </profile> 
</profile> 
+0

इस बारे में कभी सोचा नहीं। मुझें यह पसंद है। धन्यवाद। – noirbizarre

+3

क्षमा करें, लेकिन यह मेरी मदद नहीं करता है। क्या हम एक और लक्ष्य के लिए एक लक्ष्य बांध सकते हैं? मुझे रिलीज के लिए ब्रांचिंग के संदर्भ में प्लगइन का उपयोग करके शाखा नाम की गणना करने की आवश्यकता है। डेवलपर्स से एक प्रोफ़ाइल बनाने और एक शाखा बनाने के लिए जीवन चक्र चरण चलाने के लिए पूछना अजीब बात होगी, जब वे आम तौर पर 'रिलीज: शाखा' चलाते हैं ... –

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