2009-06-15 12 views
21

मैं नेटबीन्स (विंडोज) में एक मेवेन (जार) परियोजना के साथ काम कर रहा हूं, जो मैवेन चेकस्टाइल प्लगइन के साथ चेकस्टाइल रिपोर्ट बनाता है।चेकस्टाइल संदेश से छुटकारा पाने के लिए 'फ़ाइल एक नई लाइन के साथ समाप्त नहीं होती है।'

कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, मुझे हमेशा संदेश मिलता है: File does not end with a newline जावा क्लास फ़ाइलों के लिए।

संदेश से छुटकारा पाने के लिए नेटबीन्स या चेकस्टाइल में मैं क्या/कॉन्फ़िगर कर सकता हूं?

  • WinXP SP3
  • Netbeans 6.7 RC1 (साथ 6.5 भी होता है)
  • Maven 2.0.9
  • Maven Checkstyle प्लगइन 2.2
  • जावा 1.6 (अद्यतन:

    इस्तेमाल किया सॉफ्टवेयर के संस्करण 14)

उत्तर

9

फ़ाइल के अंत में
या
चेकस्टाइल को ध्यान में रखकर कॉन्फ़िगर करें।

<module name="Checker"> 
    <!-- stuff deleted --> 
    <module name="NewlineAtEndOfFile"> 
     <property name="severity" value="ignore" /> 
    </module> 

आप भी अपनी checkstyle कॉन्फ़िग फ़ाइल का उपयोग करने के Maven Checkstyle प्लगइन बताने के लिए की है।

<plugin> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <configuration> 
     <configLocation>${basedir}/yourCheckstyle.xml</configLocation> 
    </configuration> 
</plugin> 
+3

विंडोज –

+2

पर नेटबीन्स के साथ असंभव प्रतीत होता है यह संभव है। यदि आप कर्सर को अंतिम पंक्ति से आगे ले जा सकते हैं, तो आपको यह मिल गया है। यदि वह अभी भी चेतावनी को साफ़ नहीं करता है, तो [एलेक्सी वोनोव के उत्तर] की जांच करें (http://stackoverflow.com/a/15433548/1005481) और सुनिश्चित करें कि कॉन्फ़िगरेशन परिवर्तन के बाद चेकस्टाइल फिर से चलता है। –

3

ऐसा करने का एक सरल तरीका नहीं है।

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <configuration> 
     <suppressionsLocation>suppressions.xml</suppressionsLocation> 
     <configLocation>config/sun_checks.xml</configLocation> 
    </configuration> 
</plugin> 

जहाँ आपके suppressions.xml है:

<?xml version="1.0"?> 
<!DOCTYPE suppressions PUBLIC 
    "-//Puppy Crawl//DTD Suppressions 1.1//EN" 
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> 

<suppressions> 
    <suppress checks="NewlineAtEndOfFile" files=".java" /> 
</suppressions> 
+0

यह बहुत अच्छा है अगर आपको कॉन्फ़िगरेशन फ़ाइल को बदलने के लिए मना किया गया है, लेकिन दमन फ़ाइल को बदलने की अनुमति है (ऐसा होता है!)। यदि आप कॉन्फ़िगरेशन फ़ाइल बदल सकते हैं, तो कॉन्फ़िगरेशन फ़ाइल से अवांछित चेक को निकालना बेहतर है। कम अव्यवस्था और बेहतर प्रदर्शन। –

0

ग्रहण ..Window >> Preferences >> Checkstyle >> Select the configuration file >>

  1. "Properties" बटन पर क्लिक करें >> सही का निशान हटाएँ आप सूरज checkstyle कॉन्फ़िग फ़ाइल अधिभावी के बिना एक से छिपाता फ़ाइल निर्दिष्ट कर सकते हैं Protect Checkstyle Configuration file
  2. "Configure" बटन पर क्लिक करें >>"New Line At End Of File" के लिए खोजें >>New Line At End Of File के बगल में स्थित चेकबॉक्स को अनचेक करें।
41

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

+0

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

6

मैं जब फ़ाइलें डॉस के बजाय यूनिक्स प्रारूप के रूप में सहेजे जाते हैं इस समस्या में पड़। (या यूनिक्स में अपना काम करने के आसपास अन्य तरीका)

इसे ठीक करने के लिए, मैं एक प्रोग्राम का उपयोग यूनिक्स प्रारूप से डॉस में कनवर्ट करने और उस प्रारूप में फ़ाइल को सहेजने के लिए करता हूं।

ग्रहण में: फ़ाइल -> कन्वर्ट लाइन सीमांकक करने के लिए -> विंडोज

-2

// यहां जानवर बल समाधान है: "। फ़ाइल के अंत में एक नई पंक्ति रखो"

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.util.ArrayList; 

/** 
* 
* @author hMueller 
*/ 

public class UnixToWindowsEncoding { 

//rewrites all .java files in Windows encoding 
//a[0] = parent directory 
//loops through all subdirectories and fixes whatever .java file it finds 
public static void main(String[] a){ 
    String startdir = a[0]; 
    fixDir(startdir); 

} 

private static void fixDir(String dirname){ 
    try{ 
     File f = new File(dirname); 
     File[] list = f.listFiles(); 
     for(int i = 0; i < list.length; i++){ 
      if(list[i].isDirectory()){ 
       fixDir(list[i].getAbsolutePath()); 
      }else{ 
       if(list[i].getName().endsWith(".java")){ 
        ArrayList<String> l = new ArrayList<String>(); 
        FileReader fr = new FileReader(list[i]); 
        BufferedReader br = new BufferedReader(fr); 
        String line = ""; 
        while((line = br.readLine()) != null){ 
         l.add(line); 
        } 
        br.close(); 
        fr.close(); 
        list[i].delete(); 
        FileWriter fwr = new FileWriter(list[i]); 
        for(String s : l){ 
         fwr.write(s + "\r\n"); 
        } 
        fwr.flush(); 
        fwr.close(); 
       } 
      } 
     } 
    }catch(Exception ioe){ 
     ioe.printStackTrace(); 
    } 
} 

} 
+0

के साथ विंडोज़ पर अपनी फाइलें जांचती हैं, जबकि यह कोड स्निपेट प्रश्न हल कर सकता है, [स्पष्टीकरण सहित] (http://meta.stackexchange.com/questions/ 114762/समझा-पूरी तरह से कोड-आधारित-उत्तर) वास्तव में आपकी पोस्ट की गुणवत्ता में सुधार करने में मदद करता है। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और वे लोग आपके कोड सुझाव के कारणों को नहीं जानते हैं। – Ferrybig