Maven插件分析javascript代码质量

时间:2008-09-18 13:09:13

标签: javascript maven-2 static-analysis jslint

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

你知道javascript的静态代码分析工具吗?

10 个答案:

答案 0 :(得分:13)

这是一个老线程,但是如果你有兴趣在你的maven项目中运行Jasmine for BDD测试,我就是为了这个目的编写了这个jasmine-maven-plugin(也就是说,通过鼓励它的TDD来提高JS质量) )。

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

答案 1 :(得分:10)

我使用以下代码在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>

答案 2 :(得分:6)

Wro4j-maven-plugin为JavaScript和CSS资源提供了静态代码分析的几个目标,例如:jslintjshintcsslint

以下是官方Wro4j-maven-plugin documentation的链接。

答案 3 :(得分:4)

我在Codehaus提交的一些插件也可能很有用:

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

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

第一个将Maven依赖管理带到JavaScript。第二个允许快速有效地调用JSLint。

答案 4 :(得分:1)

“jslint ant任务”的快速Google显示jslint4java,显然包含了Ant任务。

答案 5 :(得分:1)

这个项目看起来很近:

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

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

答案 6 :(得分:1)

jslint4java已被提及几次,我不记得他们添加了哪个版本,但实际上是内置的Maven任务。

传统上使用jslint4java和Maven,人们使用antrun插件来运行jslint4java ant任务,但是你现在可以在Maven中配置它并避免这个额外的步骤。

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

答案 7 :(得分:0)

我参与了SweetDEV RIA project这是一个由多个“Web 2.0 / Ajax / JavaScript”组件组成的Java标记库。

maven 2构建过程包括一些内部插件,它们启动JSLint(代码验证器),JsMin(代码缩小器),JsDoc generation(JavaDoc类似文档),{{3 (单元测试)和JsUnit(在浏览器中)测试。

您可以查看Selenium

答案 8 :(得分:0)

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

答案 9 :(得分:-1)