【问题标题】:Maven plugins to analyze javascript code qualityMaven插件分析javascript代码质量
【发布时间】:2010-09-10 16:18:25
【问题描述】:

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

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

【问题讨论】:

  • 您的标题似乎没有意义。 maven 跟 JavaScript 质量控制有什么关系?
  • 修复了标题。此外,Maven 与任何源代码的质量控制有很大关系,因为它可以自动、一致地从桌面和 CI 服务器为开发人员提供构建和同步质量报告。

标签: javascript maven-2 static-analysis jslint


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我已使用以下代码在 Maven 中将 JSLint 作为 COMPILE 阶段的一部分运行。

    它从 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>
    

    【讨论】:

      【解决方案3】:

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

      这里是官方Wro4j-maven-plugin documentation的链接。

      【讨论】:

      • wro4j 插件太棒了!谢谢亚历克斯。
      【解决方案4】:

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

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

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

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

      【讨论】:

        【解决方案5】:

        “jslint ant 任务”的快速 Google 显示 jslint4java,其中显然包含一个 Ant 任务。

        【讨论】:

        • jslint4java ant 任务应该很容易使用 antrun 插件嵌入到 maven 中。
        【解决方案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 project,这是一个由多个“Web 2.0/Ajax/JavaScript”组件组成的 Java 标记库。

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

            您可以关注the SweetDEV RIA maven plugins repository

            【讨论】:

            • 您能否编辑您的答案并在最后修复损坏的链接?并将jsunit.net链接替换为github.com/pivotal/jsunit(jsunit.net域名已被广告公司占用)
            【解决方案9】:

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

            【讨论】:

              【解决方案10】:

              【讨论】:

              • 欢迎来到 SO。请更具体地回答您提供的链接的引用和推理。
              猜你喜欢
              • 1970-01-01
              • 2018-10-05
              • 1970-01-01
              • 1970-01-01
              • 2018-11-18
              • 1970-01-01
              • 2018-03-10
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多