Maven插件来分析javascript代码质量

时间:2020-03-06 14:21:11  来源:igfitidea点击:

Javascript代码很难维护。
我正在寻找可以帮助我确保合理质量水平的工具。
到目前为止,我已经找到了JsUNit,这是一个非常好的javascript单元测试框架。可以在任何可用的浏览器上从ant自动运行测试。
我还没有找到PMD,checkstyle,Findbug等JavaScript的等效语言...

我们知道用于javascript的任何静态代码分析工具吗?

解决方案

一个针对" jslint ant任务"的快速Google展示了jslint4java,它显然包括一个Ant任务。

我从事过SweetDEV RIA项目,该项目是一个Java标记库,由几个" Web 2.0 / Ajax / JavaScript"组件组成。

Maven 2的构建过程包括一些内部插件,这些插件可启动JSLint(代码验证器),JsMin(代码缩小器),JsDoc生成(类似于JavaDoc的文档),JsUnit(单元测试)和Selenium(在浏览器中)测试。

我们可以查看SweetDEV RIA maven插件存储库。

该项目看起来很接近:

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

它使用JsLint生成报告。它看起来好像并没有进入构建生命周期的测试阶段,所以我认为,如果jslint发现问题(我想在我的项目中这样做),它将不会拒绝构建。

这是一个旧线程,但是如果我们对在maven项目中运行Jasmine进行BDD测试感兴趣,我正是出于这个目的编写了此jasmine-maven-plugin(即通过鼓励TDD来提高JS质量)。

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

新的jslint-maven-plugin看起来很有用。它包装jslint4java,并在构建的测试阶段执行JSLint。

我已经使用以下代码在Maven的COMPILE阶段中运行JSLint。

它从maven存储库下载jslint4java,因此我们不需要其他任何东西。

如果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>

我在Codehaus提交的几个插件可能也很有趣:

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

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

第一个将Maven依赖关系管理引入JavaScript。第二个允许快速有效地调用JSLint。