1

我正在为一个主要是纯 Java 的库生成 Javadoc,但是因为生成了一个类并且我需要向该类添加一个方法(并且我不能为此使用继承),所以我创建了一个 AspectJ 文件它。自然,我必须通过在它所属的类前面加上前缀来定义新方法。

现在 Javadoc 正在中止并显示错误消息:

javadoc: error - Illegal package name: "C:\company\project\library\trunk\library\src\main\java\com\company\project\library\classname_extensionname.aj"

(替换名称以保护无辜者)在 .aj 文件中,我有:

package com.company.project.library;

import com.company.project.library.classname;

public aspect classname_extensionname {
   // various static final variables
   // various static methods to help the method I'm publicising
   public String classname.toString() {
      StringBuffer buffer = new StringBuffer();
      buffer.append( /* various bits and pieces */ );
      return buffer.toString();
   }
}

(原始问题错误地在“公共方面”开头的行末尾有“.aj”)

那么这有什么问题呢?

我在 Spring Tool Suite 3.1.0.RELEASE (Eclipse) 中使用 jdk 1.7_09

PS 我尝试使用 ajdoc,但无法解析 org.junit、org.slf4j 或 org.apache.xxx。

4

2 回答 2

0

您应该能够从 Maven 中的 javadoc 插件中排除 .aj 文件。许多在源代码上工作的工具产品还不支持方面(pmd、checkstyle、findbugs 等)。

于 2012-11-28T00:19:26.210 回答
0

我会去掉文件名中的下划线,将你的方面称为“ClassnameAdvice”,将.aj 文件称为 ClassnameAdvice.aj。或者,您可能只需要在 .aj 文件中删除方面名称中的“.aj”。

于 2012-11-23T01:00:34.167 回答