2

我正在尝试将 Google Analytics 跟踪注入我的 javadocs,但它不起作用。

我的 POM 文件中有以下内容:

<reporting>
    <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
            <!-- GA Tracking code -->
            <header>
                <![CDATA[
                    <script>
                      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
                      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
                      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
                      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

                      ga('create', 'UA-XXXXXX-1', 'auto');
                      ga('send', 'pageview');

                    </script>
                ]]>
            </header>
        </configuration>
        </plugin>
    </plugins>
</reporting>

运行mvn javadoc:aggregate构建我的 Javadocs 而不会引发错误,但找不到我的标头。

我在这里想念什么?

4

3 回答 3

1

我没有看到它周围的缺陷,但我认为注入属性的值来自pom.xml对于<header>这个属性来说并没有正确发生。

有关实际解决方案,请参阅我的其他答案。

你可以试试这个:

mvn javadoc:aggregate -Dheader="(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m =s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google -analytics.com/analytics.js','ga');ga('create', 'UA-XXXXXX-1', 'auto');ga('send', 'pageview');"

我知道丑陋,但不确定是否有办法让它工作,除非根本问题得到解决。

另一方面,您可以尝试特定的旧版本,maven-javadoc-plugin看看它是否适用。或者在这里提出一个错误,这样他们就可以解决这个问题。

于 2014-12-30T02:51:45.037 回答
1

好的 - 我看到你在做不同的事情。

虽然我的其他答案提供了一种解决方法,但它并没有解释问题的真正正确之处。但是那个答案让我找到了正确的答案,所以我想我会不删除它。

虽然您的POM配置看起来正确,但您真正应该运行的是

mvn site

<reporting>而不是该部分中配置的任何特定插件的任何特定目标。阅读vs. 部分,我认为它应该这样工作,但似乎没有!当运行特定的报告目标时,报告插件的看起来<configuration>完全被忽略了,而它确实应该尝试检查一次属性的存在。

无论如何,这就是Maven行为方式 - 所以它不是任何特定插件的错误。

mvn网站

它仅使用在元素中指定的每个报告插件的<reporting>元素中定义的参数,即站点总是忽略在 中指定的每个插件的元素中定义的参数<build>

mvn aplugin:areportgoal

它首先使用元素中指定的每个报告插件的元素中定义的参数;如果未找到参数,它将查找在 中<configuration>指定的每个插件的元素中定义的参数<build>

于 2014-12-30T12:01:40.447 回答
0

嗯,这很尴尬。

内容一直在插入。问题是我正在使用 IntelliJ 的 find 函数来查看标头注入是否有效。

不幸的是,该target目录已从搜索索引中排除,因此没有搜索这些文件(即使已明确选择了该文件夹)。

问题中的代码工作得很好。

于 2014-12-30T16:48:26.577 回答