2011-12-04 17 views
8

मैं दो सीएसएस एकत्रीकरण बनाने की कोशिश कर रहा हूं - एक सार्वजनिक साइट के लिए और साइट के आवेदन भाग के लिए एक।मैवेन यूई कंप्रेसर प्लगइन एक लंबा रास्ता दिया गया एकत्रीकरण नहीं बना सकता है?

यदि मैं आउटपुट फ़ाइल ${project.build.directory}/${project.build.finalName}/css/public-all.css बना देता हूं, तो सब कुछ काम करता है।

[INFO] generate aggregation : C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\public-all.css 
[INFO] public-all.css (32029b) 
[INFO] generate aggregation : C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\application-all.css 
[INFO] application-all.css (50446b) 

लेकिन अगर मैं इस तरह के ${project.build.directory}/${project.build.finalName}/css/public/all.css के रूप में कोशिश करते हैं और उत्पादन एक और उप-निर्देशिका के लिए एकत्रित फ़ाइल, यह निम्न त्रुटि देता है:

[INFO] generate aggregation : C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\public\all.css 
[WARNING] all.css not created 
[INFO] generate aggregation : C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\application\all.css 
[WARNING] all.css not created 

वे नहीं क्यों बनाया जा रहा है? यह एक चेतावनी क्यों है और प्लगइन की आउट-सही विफलता क्यों नहीं है?

यहां pom.xml भाग है जहां मैं समेकन निर्दिष्ट कर रहा हूं। पृथ्वी पर क्यों यह काम नहीं कर रहा है?

    <aggregation> 
         <removeIncluded>false</removeIncluded> 
         <insertNewLine>true</insertNewLine> 
         <output>${project.build.directory}/${project.build.finalName}/css/public/all.css</output> 
         <includes> 
          <include>**/public/base.css</include> 
          <include>**/fancybox/jquery.fancybox-1.3.4.css</include> 
         </includes> 
        </aggregation> 
        <aggregation> 
         <removeIncluded>false</removeIncluded> 
         <insertNewLine>true</insertNewLine> 
         <output>${project.build.directory}/${project.build.finalName}/css/application/all.css</output> 
         <includes> 
          <include>**/application/reset.css</include> 
          <include>**/application/text.css</include> 
          <include>**/application/960.css</include> 
          <include>**/smoothness/jquery-ui-1.8.11.custom.css</include> 
          <include>**/application/base.css</include> 
          <include>**/jcrop/jquery.jcrop.css</include> 
          <include>**/farbtastic/farbtastic.css</include> 
         </includes> 
        </aggregation> 

मैंने जांच की और ये निर्देशिका भी मौजूद हैं। यदि मैं ऐसी निर्देशिका को आज़माता हूं और इंगित करता हूं जो मौजूद नहीं है, तो yuicompressor:compress विफल हो जाएगा। मुझे समझ में नहीं आता कि निर्माण प्रक्रिया वास्तव में वैध निर्देशिकाओं को क्यों सफल करती है, लेकिन यह उन निर्देशिकाओं में फ़ाइलों को नहीं बनाती है। इसका कोई मतलब नही बनता!

मैंने सोचा कि शायद यह एक फाइल सिस्टम सुरक्षा समस्या थी, लेकिन यह भी नहीं है।

मैं सचमुच परेशान हूं कि यह क्यों काम नहीं करता है।

कृपया मदद करें।

+0

मदद किसी को? मैं अभी भी यह नहीं समझ सकता कि यह क्यों काम नहीं करता है। मुझे नहीं पता कि 'css/application' या 'css/public' जैसे'/css/'के अंतर्गत एक उपनिर्देशिका क्यों जोड़ना विफल हो जाएगा :(अगर मैं केवल 'सीएसएस' तक पहुंचता हूं तो यह केवल सफल क्यों होता है? इसमें एक बग बनने के लिए। – egervari

उत्तर

12

मुझे एक ही समस्या थी और मैंने इसे जेएस संरचना की मूल निर्देशिका को इंगित करने के लिए inputDir को कॉन्फ़िगर किया। डिफ़ॉल्ट रूप से, प्लगइन आपकी आउटपुट फ़ाइल की मूल निर्देशिका के आधार पर लेता है, और इसमें इसके सापेक्ष व्यवहार भी होगा (यदि पूर्ण पथ नहीं हैं)।

<inputDir>src/main/js</inputDir> 
<includes> 
    <include>**/*.js</include> 
</includes> 
<output>${webapp.root.dir}/js/${project.artifactId}-${project.version}.js</output> 

आशा इस मदद करता है :)

+0

बस मुझे क्या चाहिए! धन्यवाद एक गुच्छा। – evandongen

+0

बहुत बढ़िया आदमी! मैं इस पोस्ट को तब तक व्यर्थ में थोड़ी देर के लिए पथ से गड़बड़ कर रहा था। – asgs