防止Eclipse将<pre> javadoc标记中的@字符转换为&#64;。

时间:2019-10-16 15:20:00

标签: java eclipse

我对其中一个程序包(package-info.java)的Javadoc注释基本上是这样的:

/**
 * <pre>
 * {@code
 * // Some comments...
 * final Foo<Integer> foo = new Foo<>(0);
 * }
 * </pre>
 * 
 */
package com.holt.mypackage;

我还通过在项目属性中使用格式化所有行启用了保存操作。每次保存文件时,Eclipse都将{@code替换为:

* {
*   &#64;code

...完全破坏了我的Javadoc。

我尝试手动使用<pre><code>,但是随后Maven javadoc插件抱怨HTML中的无效字符<>(由于Foo<> )。如果禁用 Save Actions ,那么从Eclipse到Maven的所有功能都可以正常运行。

有没有办法告诉Eclipse不要替换这样的字符?

1 个答案:

答案 0 :(得分:1)

按照here的规定,您必须“在'pre'标记内设置 Format Java代码段设置”:

  1. Window > Preferences
  2. Java > Code Style > Formatter
  3. 如果您没有自定义个人资料,请点击New...
  4. Edit...
  5. Comments>取消选中格式化Java代码段...

结果是Eclipse IDE将不再格式化<pre>标签的内容。

如果您仍然想从格式化中受益,我建议您使用<code>标签。您只需要正确地转义<>字符即可,如下所示:

/**
 * <pre>
 * <code>
 * // Some comments...
 * final Foo&lt;Integer&gt; foo = new Foo&lt;&gt;(0);
 * }
 * </code>
 * </pre> 
 *
 */
package com.holt.mypackage;

请参见this SO answer