为什么我的标题没有被maven注入我的javadoc?

时间:2014-12-29 22:49:42

标签: maven javadoc maven-javadoc-plugin

我正在尝试将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构建我的Javadoc而不会抛出错误,但我的标题无处可寻。

我在这里缺少什么?

3 个答案:

答案 0 :(得分:1)

我没有看到它周围的缺陷,但我认为使用pom.xml <header>maven-javadoc-plugin下的值的属性注入不适用于此属性。

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

你可以试试这个:

  

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 =克; m.parentNode.insertBefore(A,M)})(窗口,文件, '脚本',“// www.google-analytics.com/analytics.js','ga');ga('create','UA-XXXXXX-1','auto'); ga('send','pageview');“< / p>

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

另一方面,您可以尝试{{1}}的特定旧版本,看看它是否适用。或者提出一个错误here,这样他们就可以解决这个问题。

答案 1 :(得分:1)

好的 - 我看到你的做法有所不同。

虽然我的另一个答案提供了一种解决方法,但它没有解释问题的真正原因。但是那个答案把我引向了正确的答案,所以我想我会把它留下来。#/ p>

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

mvn site

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

在任何情况下,这都是Maven的行为 - 因此它不是任何特定插件的错误。

  

mvn网站

     

它仅使用<reporting>元素中指定的每个报告插件的元素中定义的参数,即   site始终忽略在中定义的参数   <build>中指定的每个插件的元素。

     

mvn aplugin:areportgoal

     

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

答案 2 :(得分:0)

嗯,这很令人尴尬。

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

不幸的是,target目录被排除在搜索索引之外,因此未搜索这些文件(即使明确选择了该文件夹)。

问题中的代码工作正常。