2011-03-28 17 views
5

मेरे पास एक अभिभावक पोम के साथ एक सापेक्ष सरल बहु मॉड्यूल मैवेन है। यह 2 बच्चे मॉड्यूल इस प्रकार में शामिल हैं:मेवेन बाल मॉड्यूल नहीं बनाया जा रहा है

<modules> 
    <module>WebApp</module> 
    <module>WebService</module> 
</modules> 

जब मैं mvn साफ चलाने शीर्ष स्तर पर स्थापित पोम यह & अपेक्षा के अनुरूप प्रत्येक बच्चे मॉड्यूल स्थापित करता है साफ। हालांकि अब मैं WebApp को तैनात करने के लिए एक प्लगइन (कोडहॉस वेबलॉगिक) लक्ष्य जोड़ने की कोशिश कर रहा हूं .war Weblogic 10.3.4 उदा। एमवीएन स्वच्छ वेबलॉग स्थापित करें: तैनात करें। किसी कारण से यह साफ नहीं करता है और चरण स्थापित करता है लेकिन तैनाती करता है। यदि मैं WebApp निर्देशिका के भीतर से आदेश चलाता हूं तो यह तैनाती करने से पहले साफ और स्थापित करता है।

क्या कुछ गॉचा है, मुझे याद आ रही है कि शीर्ष स्तर पर लक्ष्य चलाने पर बाल जीवन चक्र चरण नहीं चलाएंगे। यहां कमांड लाइन आउटपुट है:

[INFO] Scanning for projects... 
[INFO] Reactor build order: 
[INFO] SupportClient 
[INFO] SupportClient-WebServices 
[INFO] SupportClient-WebApp 
[INFO] Searching repository for plugin with prefix: 'weblogic'. 
[INFO] org.apache.maven.plugins: checking for updates from central 
[INFO] org.codehaus.mojo: checking for updates from central 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building SupportClient 
[INFO] task-segment: [clean, install, weblogic:deploy] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [clean:clean] 
[INFO] [site:attach-descriptor] 
[INFO] [install:install] 
[INFO] Installing C:\Development\Destin8SupportClient\pom.xml to C:\Users\finchaj.HPH\.m2 \repository\com\mcpplc\supportClient\supportClient\1.0\supportClient-1.0.pom 
[INFO] [weblogic:deploy] 
[INFO] Weblogic Deployment beginning with parameters DeployMojoBase[adminServerHostName = localhost, adminServerProtocol = t3, adminServerPort = 8001, userId = xx, password = ****, artifactPath = C:\Development\Destin8SupportClient/WebApp/target/WebApp.war, projectPackaging = war, name = support-client-webapp, targetNames = AdminServer, remote = false] 
[INFO] Weblogic Deployment parameters [-adminurl, t3://localhost:8001, -username, xx, -password, xx, -name, support-client-webapp, -targets, AdminServer, -source, C:\Development\Destin8SupportClient/WebApp/target/WebApp.war, -deploy] 
weblogic.Deployer invoked with options: -adminurl t3://localhost:8001 -username xx-name support-client-webapp -targets AdminServer -source C:\Development\Destin8SupportClient/WebApp/target/WebApp.war -deploy 
The file, 'C:\Development\Destin8SupportClient/WebApp/target/WebApp.war', does not exist. 

उत्तर

2

यह वेबलॉगिक चला रहा है: शीर्ष-स्तर (पोम!) मॉड्यूल पर लक्ष्य तैनात करें। यह लक्ष्य केवल युद्ध या कान मॉड्यूल पर ही चलाया जा सकता है।

आपको स्थापित चरण में चलाने के लिए WebApp उप-मॉड्यूल में उस लक्ष्य को बाध्य करने की आवश्यकता है। वर्तमान में यह शीर्ष-स्तर (पोम!) मॉड्यूल पर चल रहा है।

उदा। Webapp उप-मॉड्यूल में अपनी वेबलॉगिक कॉन्फ़िगरेशन में निम्नलिखित जोड़ने का प्रयास करें।

  • फिर से:

    <executions> 
        <execution> 
         <phase>install</phase> 
          <goals> 
          <goal>deploy</goal> 
          </goals> 
        </execution> 
        </executions> 
    

    भी देखें Example C-1 in this documentation

    आप अपने निर्माण के अंत में इस रन नहीं रखना चाहती हैं, एक बार अन्य सभी मॉड्यूल निर्माण किया गया है, तो आप करने के लिए या तो की आवश्यकता होगी अपने उप-मॉड्यूल को ऑर्डर करें, इसलिए WebApp आखिरी है, फिर

  • या अन्य उप-मॉड्यूल जोड़ें जो अंतिम निष्पादित करेगा, जो आपके वेब ऐप सबमिशन पर निर्भर करता है। फिर, वेबलॉग प्लगइन को उस संपत्ति का उपयोग करने के लिए बताएं .war फ़ाइल निम्नलिखित संपत्ति maven.weblogic.war निर्दिष्ट करके। आप उस अंतिम उप-मॉड्यूल के लक्ष्य डीआईआर में पहुंचने के लिए पहले dependency:copy लक्ष्य का उपयोग करना चाह सकते हैं।
+0

तैनाती लक्ष्य शीर्ष स्तर पर चलाने के लिए है। मैं तैनात करने से पहले सभी बाल परियोजनाओं को बनाने के लिए स्थापित करना चाहता हूं। उपर्युक्त कोड केवल तभी प्रासंगिक है जब मैं केवल उस वेबपृष्ठ स्तर पर स्थापित करता हूं जिसे मैं इस उदाहरण में नहीं करना चाहता हूं। – andyfinch

+0

आप अपरिवर्तनीय प्रोजेक्ट इंस्टॉल नहीं कर सकते हैं। यदि आप सभी प्रोजेक्ट को इंस्टॉल करना चाहते हैं और उसके बाद उन्हें अपने वेबसर्वर पर तैनात करना चाहते हैं, तो बैचस्क्रिप्ट बनाएं जो वास्तव में करता है। मेवेन और वेबलॉगिक-मेवेन-प्लगइन इसका समर्थन नहीं करते हैं। – Salandur

+0

जब मैं तैनाती लक्ष्य शामिल नहीं करता हूं तो मैं शीर्ष स्तर पर स्थापित कर सकता हूं। यह निर्दिष्ट के रूप में बाल मॉड्यूल स्थापित करता है। जब मैं तैनाती लक्ष्य जोड़ता हूं तो क्या यह निर्णय लेता है कि बच्चे परियोजनाओं को स्थापित न करें। इसके अलावा अगर मैं चाइल्ड लेवल पर पूर्ण कमांड चलाता हूं तो क्या यह इंस्टॉल और तैनाती करता है। – andyfinch

1

यदि आप सभी परियोजनाओं के लिए पहले चरण स्थापित करना चाहते हैं और उसके बाद अपनी परियोजनाओं को अपने वेबसर्वर पर तैनात करना है, तो आपको मेवेन कॉल को विभाजित करना होगा।

mvn clean install 
mvn weblogic:deploy 

डिफ़ॉल्ट रूप से, Maven परियोजना प्रति सभी कार्य निष्पादित और Maven कार्यों को अलग करने के एकमात्र समाधान उन्हें अलग से चलाने के लिए।

+0

मैंने इस बारे में सोचा लेकिन मुझे एक पंक्ति पर निर्दिष्ट करने की आवश्यकता है। मैं टीमसिटी का उपयोग कर रहा हूं और मुझे नहीं लगता कि कमांड को इस तरह से अलग किया जा सकता है। – andyfinch

0

मैवेन पहले सभी मूल लक्ष्यों को मूल परियोजना पर और फिर चल्डन पर चलाता है।

लॉग से यह स्पष्ट है कि मैवेन ने clean और install माता-पिता के लक्ष्यों को चलाया और फिर weblogic:deploy लक्ष्य चलाने की कोशिश की। अब, weblogic:deploy स्पष्ट रूप से एक ऐसा लक्ष्य नहीं है जो माता-पिता के लिए प्रासंगिक है, क्योंकि यह एक बच्चे वेबपैप को तैनात करने के लिए है। मैवेन यह नहीं जानता है और इस तरह विफलता।

शायद आपको npellow के समाधान पर पुनर्विचार करना चाहिए क्योंकि इसे आपकी आवश्यकता के लिए काम करना चाहिए।

+0

ने उत्तर दिया npellows जवाब – andyfinch

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