Плагины Maven для анализа качества кода JavaScript

Javascript-код может быть жестким для поддержки.
Я ищу инструменты, которые помогут мне обеспечить разумный уровень качества.
До сих пор я нашел JsUNit, очень приятную структуру unit test для javascript. Тесты могут запускаться автоматически из ant в любом доступном браузере.
Я еще не нашел javascript-эквивалент PMD, checkstyle, Findbug...

Знаете ли вы какой-либо статический инструмент анализа кода для javascript?

Ответ 1

Это старый поток, но если вы заинтересованы в запуске Jasmine для тестирования BDD в своем проекте maven, я написал этот плагин jasmine-maven именно для этой цели (то есть, улучшив качество JS, поощряя TDD этого).

http://github.com/searls/jasmine-maven-plugin

Ответ 2

Я использовал следующий код для запуска JSLint как часть фазы COMPILE в Maven.

Он загружает jslint4java из репозитория maven, поэтому вам больше ничего не нужно.

Если JSLint обнаружит проблемы в файлах javascript, сборка завершится с ошибкой.

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.6</version>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <target>
                            <taskdef name="jslint" classname="com.googlecode.jslint4java.ant.JSLintTask" classpath="${settings.localRepository}/com/googlecode/jslint4java/jslint4java-ant/1.4.2/jslint4java-ant-1.4.2.jar" />
                            <jslint options="white,browser,devel,undef,eqeqeq,plusplus,bitwise,regexp,strict,newcap,immed">
                                <predef>Ext,Utils</predef>
                                <formatter type="plain" />
                                <fileset dir="${basedir}/src/main/resources/META-INF/resources/js" includes="**/*.js" />
                            </jslint>
                        </target>
                    </configuration>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>com.googlecode.jslint4java</groupId>
                    <artifactId>jslint4java-ant</artifactId>
                    <version>1.4.2</version>
                </dependency>
            </dependencies>
        </plugin>

Ответ 4

Несколько плагинов, которые я представил в Codehaus, также могут представлять интерес:

http://mojo.codehaus.org/js-import-maven-plugin/

http://mojo.codehaus.org/jslint-maven-plugin/

Первый приводит управление зависимостями Maven к JavaScript. Второй способ позволяет быстро и эффективно запускать JSLint.

Ответ 5

Быстрый Google для задачи "jslint ant" показывает jslint4java, который, по-видимому, включает задачу ant.

Ответ 6

Этот проект выглядит близко:

http://dev.abiss.gr/mvn-jstools/index.html

Создает отчет с JsLint. Не похоже, что он перехватывает этап тестирования жизненного цикла сборки, поэтому я не думаю, что он отклонит сборку, если jslint обнаружит проблемы (что я хотел бы сделать для своих проектов).

Ответ 7

jslint4java упоминается несколько раз, я не могу вспомнить, какую версию они добавили, но на самом деле есть встроенная задача Maven.

Традиционно с jslint4java и Maven люди использовали плагин antrun для запуска задачи jslint4java ant, однако теперь вы можете настроить все это в Maven и избежать этого дополнительного шага.

http://docs.jslint4java.googlecode.com/git/2.0.2/maven.html

Ответ 8

Я работал над проектом SweetDEV RIA, который является библиотекой тегов Java, состоящей из нескольких компонентов "Web 2.0/Ajax/JavaScript".

Процесс сборки maven 2 включает некоторые встроенные плагины, которые запускают JSLint (верификатор кода), JsMin (код minifier), Генерация JsDoc (JavaDoc как документация), JsUnit (модульные тесты) и Selenium (в браузере).

Вы можете взглянуть на репозиторий плагинов SweetDEV RIA maven.

Ответ 9

Новый jslint-maven-plugin выглядит полезным. Он завершает jslint4java, выполняя JSLint на этапе тестирования вашей сборки.