我正在尝试将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而不会抛出错误,但我的标题无处可寻。
我在这里缺少什么?
答案 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
目录被排除在搜索索引之外,因此未搜索这些文件(即使明确选择了该文件夹)。
问题中的代码工作正常。