2012-10-02 17 views
5

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

+0

आप कह रहे हैं कि आप 'Maven-निर्भरता-plugin'' test' चरण के दौरान 'tree' लक्ष्य चलाना चाहते हैं? – maba

उत्तर

5

आप यह सुनिश्चित करें कि dependency:treetest चरण की शुरुआत में चलाया जा रहा है होना चाहते हैं तो आप dependency:tree के बाद आयोजित किया जा रहा करने के लिए मूल surefire:test लक्ष्य से ले जाना होगा। ऐसा करने के लिए आपको प्लगइन को क्रम में रखना होगा कि उन्हें चलाना चाहिए।

यहां एक पूर्ण pom.xml उदाहरण है जो maven-surefire-plugin से पहले maven-dependency-plugin जोड़ता है। मूल default-test अक्षम है और एक नया custom-test जोड़ा गया है और यह dependency-tree निष्पादन के बाद चलाया जाएगा।

<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.stackoverflow</groupId> 
    <artifactId>Q12687743</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <name>${project.artifactId}-${project.version}</name> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-dependency-plugin</artifactId> 
       <version>2.5.1</version> 
       <executions> 
        <execution> 
         <id>dependency-tree</id> 
         <phase>test</phase> 
         <goals> 
          <goal>tree</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.7.2</version> 
       <executions> 
        <execution> 
         <id>default-test</id> 
         <!-- Using phase none will disable the original default-test execution --> 
         <phase>none</phase> 
        </execution> 
        <execution> 
         <id>custom-test</id> 
         <phase>test</phase> 
         <goals> 
          <goal>test</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

यह एक छोटा सा अजीब है, लेकिन है कि फांसी निष्क्रिय करने के लिए तरीका है।

3

अपनी परियोजना पोम में घोषित इस:

<plugin> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.5.1</version> 
    <executions> 
    <execution> 
     <phase>test-compile</phase> 
     <goals> 
     <goal>tree</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 

आप इस पद्धति को अपनाने कर सकते हैं एक विशिष्ट निर्माण चरण के दौरान किसी भी प्लगइन को गति प्रदान करने। http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Plugins देखें।

बिल्ड चरणों की सूची के लिए http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference भी देखें। जैसा कि माबा बताते हैं, आपको सही समय पर tree लक्ष्य निष्पादित करने के लिए चरण का ध्यानपूर्वक चयन करना होगा।

+0

जो वास्तविक परीक्षण के बाद 'निर्भरता: पेड़' चलाएगा। ओपी का कहना है कि वह परीक्षण चरण की शुरुआत में इसे चलाने के लिए चाहता है। – maba

+0

अच्छा बिंदु। इसके बजाय वह 'टेस्ट-कंपाइल' या यहां तक ​​कि 'संकलन' से जुड़ सकता है। उम्मीद है कि चरणों को बाध्यकारी प्लगइन के लिए सामान्य पैटर्न को समझने के लिए समस्या हल करने के लिए पर्याप्त होगा। (मेरा जवाब संपादित)। –

+0

+1 'परीक्षण' चरण में 'निर्भरता: पेड़' को जोड़ने का तरीका दिखाने के लिए +1। मैं एक और जवाब जोड़ूंगा जो आपको दिखाता है कि 'टेस्ट' चरण की शुरुआत में 'निर्भरता: पेड़' कैसे चलाना है। – maba

6

हो जाएगा ताकि उत्पादन परीक्षण निर्भरता पेड़:

mvn test dependency:tree -DskipTests=true 
संबंधित मुद्दे