Maven插件来分析javascript代码质量
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。