2010-01-29 8 views
14

का उपयोग कर फ़ाइलों को यूनिक्स प्रारूप में कनवर्ट करें मेरे पास एक ऐसा एप्लिकेशन है जो विंडोज वातावरण में विकसित किया गया है। एप्लिकेशन को लिनक्स पर्यावरण में ही तैनात किया जाता है। प्रत्येक बार जब मैं इस एप्लिकेशन को तैनात करता हूं तो मुझे dos2unix का उपयोग करके निष्पादन योग्य फ़ाइलों को यूनिक्स प्रारूप में परिवर्तित करना होगा। मैंने मूल रूप से सोचा था कि यह विंडोज सीपी 1252 एन्कोडिंग के कारण हुआ था, इसलिए मैंने फ़ाइलों को एटीडी -8 में एन्कोड करने के लिए मैवेन को अपडेट किया। इसने मेरी समस्या का समाधान नहीं किया और मुझे जल्दी पता चला कि इस साइट को खोजकर इसे कैरिज रिटर्न और लाइन फीड्स के साथ करना है। क्या मेवेन निर्माण प्रक्रिया के दौरान सभी फ़ाइलों को यूनिक्स प्रारूप में परिवर्तित करने का कोई तरीका है? मैं Maven 2.2.1 और जावा 5. उपयोग कर रहा हूँमैवेन

उत्तर

14

आप fixcrlf चींटी कार्य कॉल करने के लिए Maven antrun प्लगइन का उपयोग कर सकते हैं:

<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"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>ant-test</groupId> 
    <artifactId>ant-test</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <executions> 
        <execution> 
         <id>ant-test</id> 
         <phase>package</phase> 
         <configuration> 
          <tasks> 
           <fixcrlf ... /> 
          </tasks> 
         </configuration> 
         <goals> 
          <goal>run</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
+1

मैंने कोशिश की , जो काम करता प्रतीत होता है। मैं मेवेन असेंबली प्लगइन का भी उपयोग कर रहा हूं और अब इस रूपांतरण के कारण जार फ़ाइलों को पढ़ने में समस्याएं हैं। विंडोज मशीन पर निर्माण करने के लिए मैं इसे कैसे प्राप्त कर सकता हूं इस पर कोई विचार? –

+1

आप शायद एक जोड़ना या विशेषता को शामिल करना चाहते हैं ताकि आप केवल * .txt बदल रहे हों या जो भी संसाधन आप संशोधित करने की कोशिश कर रहे हैं – Kevin

+0

धन्यवाद, इसमें शामिल/बहिष्कृत कार्य शामिल हैं। यह मेरी स्रोत निर्देशिकाओं में फ़ाइलों को संशोधित करता है, हालांकि, यदि आवश्यकता हो तो ठीक रहेगा, लेकिन क्या मेवेन असेंबली प्लग-इन इस चींटी कार्य को चलाने के लिए कोई तरीका है क्योंकि यह निर्माण कर रहा है ताकि मुझे वापस या वापस नहीं करना पड़ेगा मेरी फाइलों में? –

35

विधानसभा प्लगइन एक lineEnding विकल्प जो नियंत्रित करने के लिए इस्तेमाल किया जा सकता है दिए गए fileSet के लिए फ़ाइलों का लाइन-एंडिंग। यह पैरामीटर ठीक वही है जो आप चाहते हैं। आखिरकार, आप एलएफ लाइनों के साथ सीआरएलएफ लाइनों और tar.gz अभिलेखागार के साथ ज़िप अभिलेखागार बना सकते हैं।

उदा।

... 
<fileSet> 
    <directory>${basedir}/src/main/build/QA</directory> 
    <outputDirectory>/bin</outputDirectory> 
    <includes> 
     <include>start.sh</include> 
    </includes> 
    <lineEnding>unix</lineEnding> 
</fileSet> 
... 

इस समय संभावित मान सहित:

  • "रखना" - सभी लाइन अंत
  • "यूनिक्स" रक्षित - उपयोग यूनिक्स शैली लाइन अंत (यानी "\ n")
  • "वामो" - एक पंक्ति-फ़ीड लाइन अंत का उपयोग करें (यानी "\ n")
  • "डॉस" - उपयोग DOS-/विंडोज शैली लाइन अंत (यानी "\ r \ n")
  • "खिड़कियां "- डॉस-/विंडोज का प्रयोग करें स्टाइल लाइन अंत (यानी। "\ R \ n")
  • "CRLF" - उपयोग गाड़ी-रिटर्न, लाइन फ़ीड लाइन अंत (यानी "\ r \ n")