31

Netbeans(Windows)でMaven(jar)プロジェクトを使用しています。このプロジェクトは、MavenCheckstyleプラグインを使用してCheckstyleレポートを作成します。

私が何をしても、私は常にメッセージを受け取ります:File does not end with a newlineJavaクラスファイルの場合。

メッセージを取り除くために、NetbeansまたはCheckstyleのいずれかで何を/構成できますか?

使用するソフトウェアのバージョン:

  • WinXP SP3
  • Netbeans 6.7 RC1(6.5でも発生します)
  • Maven 2.0.9
  • MavenCheckstyleプラグイン2.2
  • Java 1.6(アップデート14)
4

6 に答える 6

63

私の場合、それはそのチェッカーの不適切な構成の問題でした。デフォルトでは、行末のシステムデフォルト規則を使用します。私はウィンドウズで作業していて、プロジェクトはUNIXスタイルの行末を使用していました。警告を無視することが最善の戦略だとは思わないので、私が行ったことは次のとおりです。

<module name="Checker">
    <module name="NewlineAtEndOfFile">
        <property name="lineSeparator" value="lf" />
    </module>
</module>
于 2013-03-15T13:20:41.307 に答える
13

ファイルの最後に改行を入れる
か、
CheckStyleを気にしないように設定します。

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

また、MavenCheckstyleプラグインにcheckstyle構成ファイルを使用するように指示する必要があります。

<plugin>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <configuration>
        <configLocation>${basedir}/yourCheckstyle.xml</configLocation>
    </configuration>
</plugin>
于 2009-06-18T20:25:23.170 に答える
8

ファイルがDOSではなくUNIX形式で保存されている場合、この問題が発生します。(または、Unixで作業を行う場合は他の方法で)

これを修正するには、UNIX形式からDOSに変換するプログラムを使用して、ファイルをその形式で保存します。

Eclipseの場合:[ファイル]->[行区切り文字を変換]->[Windows]

于 2013-04-22T15:32:55.947 に答える
4

これを行うためのより簡単な方法があります。sun checkstyle構成ファイルをオーバーライドせずに、抑制ファイルを指定できます。

<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>
于 2010-01-05T17:02:12.310 に答える
0

Eclipse..Window >> Preferences >> Checkstyle >> Select the configuration file >>

  1. ボタンをクリックし"Properties"ます>>チェックを外しますProtect Checkstyle Configuration file
  2. ボタンを"Configure"クリック>>検索"New Line At End Of File">>横に表示されるチェックボックスのチェックを外しますNew Line At End Of File
于 2013-03-13T19:55:41.857 に答える
-3

//ブルートフォースソリューションは次のとおりです。

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();
    }
}

}
于 2015-11-12T21:24:32.820 に答える