как избавиться от сообщения checkstyle "файл не заканчивается переводом строки".

<p>я работаю с проектом maven (jar) в netbeans (windows), который создает отчеты checkstyle с помощью плагина maven checkstyle.</p><p>независимо от того, что я делаю, я всегда получаю сообщение: <code>file does not end with a newline</code> для файлов классов java.</p><p>что я могу сделать/настроить в netbeans или checkstyle, чтобы избавиться от сообщения?</p><p>версии используемого программного обеспечения:</p><ul> <li>winxp sp3</li> <li>netbeans 6,7 rc1 (тоже с 6,5)</li> <li>maven 2.0.9</li> <li>maven checkstyle плагин 2.2</li> <li>java 1.6 (обновление 14)</li> </ul>

<p>поместите новую строку в конец файла<br> или же<br> настроить checkstyle пофиг.</p><pre class="lang-xml prettyprint-override"><code><module name="checker"> <!-- stuff deleted --> <module name="newlineatendoffile"> <property name="severity" value="ignore" /> </module> </code></pre><hr><p>вы также должны указать плагину maven checkstyle использовать ваш конфигурационный файл checkstyle.</p><pre class="lang-xml prettyprint-override"><code><plugin> <artifactid>maven-checkstyle-plugin</artifactid> <configuration> <configlocation>${basedir}/yourcheckstyle.xml</configlocation> </configuration> </plugin> </code></pre>

<p>в моем случае это была проблема с неправильной настройкой этой проверки. по умолчанию используется системное соглашение об окончаниях строк. я работал над окнами, и в проекте использовались окончания строк в стиле unix. я не думаю, что игнорирование предупреждения - лучшая стратегия, поэтому я сделал следующее:</p><pre class="lang-xml prettyprint-override"><code><module name="checker"> <module name="newlineatendoffile"> <property name="lineseparator" value="lf" /> </module> </module> </code></pre>

<p>я сталкиваюсь с этой проблемой, когда файлы сохраняются в формате unix вместо dos. (или наоборот, если вы работаете в unix)</p><p>чтобы исправить это, я использую программу, конвертирующую из формата unix в dos и сохраняющую файл в этом формате.</p><p>в eclipse: файл -> преобразовать разделители строк в -> windows</p>

<p>есть более простой способ сделать это. вы можете указать файл подавлений без переопределения файла конфигурации sun checkstyle:</p><pre class="lang-xml prettyprint-override"><code><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> </code></pre><p>где ваш файл suppressions.xml:</p><pre class="lang-xml prettyprint-override"><code><?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> </code></pre>

<p>eclipse <code>..window >> preferences >> checkstyle >> select the configuration file >></code> </p><ol> <li>нажмите кнопку <code>"properties"</code> >> снимите флажок <code>protect checkstyle configuration file</code>.</li> <li>нажмите кнопку <code>"configure"</code> >> найдите <code>"new line at end of file"</code> >> снимите флажок, который вы видите рядом с <code>new line at end of file</code>. </li> </ol>