- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试为多模块项目创建聚合 javadoc。该项目使用 mvn install -DskipTests
编译(我没有在我的机器上运行测试)。当我运行 mvn validate javadoc:javadoc
时,它会工作并编译每个模块\target\apidocs 目录中的所有 javadoc。然后,当我运行 mvn validate javadoc:javadoc javadoc:aggregate
或 mvn validate javadoc:aggregate
时,中途失败,出现大约 1200 行错误。类型的一些例子是:
Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:aggregate (default-cli) on project commons-superpom: An error has occurred in JavaDocs report generation:
[ERROR] Exit code: 1 - C:\workspaces\win\tfs\****\Foo.java:21: type org.springframework.context.ApplicationListener does not take parameters
[ERROR] public class Foo implements ApplicationContextAware, ApplicationListener<ContextRefreshedEvent> {
[ERROR] ^
.
.
.
C:\workspaces\win\tfs\****\test\Bar.java:52: cannot find symbol
[ERROR] symbol : class PostInsertEvent
[ERROR] location: class com.Barclass
[ERROR] public void BarFunct(PostInsertEvent event) {
[ERROR] ^
[ERROR] C:java.lang.NullPointerException
[ERROR] at com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:67)
[ERROR] at com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:29)
[ERROR] at com.sun.tools.javadoc.ClassDocImpl.superclassType(ClassDocImpl.java:439)
[ERROR] at com.sun.tools.doclets.internal.toolkit.util.Util.getAllInterfaces(Util.java:386)
[ERROR] at com.sun.tools.doclets.internal.toolkit.util.Util.getAllInterfaces(Util.java:424)
[ERROR] at com.sun.tools.doclets.internal.toolkit.util.ClassTree.processType(ClassTree.java:162)
[ERROR] at com.sun.tools.doclets.internal.toolkit.util.ClassTree.buildTree(ClassTree.java:114)
[ERROR] at com.sun.tools.doclets.internal.toolkit.util.ClassTree.<init>(ClassTree.java:73)
[ERROR] at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:104)
[ERROR] at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:64)
[ERROR] at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:42)
[ERROR] at com.sun.tools.doclets.standard.Standard.start(Standard.java:23)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ERROR] at java.lang.reflect.Method.invoke(Method.java:597)
[ERROR] at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:269)
[ERROR] at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:143)
[ERROR] at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
[ERROR] at com.sun.tools.javadoc.Start.begin(Start.java:128)
[ERROR] at com.sun.tools.javadoc.Main.execute(Main.java:41)
[ERROR] at com.sun.tools.javadoc.Main.main(Main.java:31)
崩溃后,我父级 pom.xml 旁边的/target 目录中剩下的所有内容是 2 个文件,其中 1 个是包含 xml 文件的 javadoc-bundle-options:
<?xml version="1.0" encoding="UTF-8"?>
<javadocOptions>
<docletArtifacts>
<docletArtifact />
</docletArtifacts>
<tagletArtifacts>
<tagletArtifact />
</tagletArtifacts>
<excludePackageNames>
<excludePackageName>org.foobar.*</excludePackageName>
</excludePackageNames>
<javadocResourcesDirectory>src/main/javadoc</javadocResourcesDirectory>
</javadocOptions>
第二个是包含名为 apidocs 的文件的站点,该文件包含 3 个文件 javadoc.bat、选项和包。它们包含它们似乎包含一个批处理脚本,用于使用这些选项和那些包运行 javadoc.exe。
我复制的第一个错误是直接错误的。 ApplicationListener 是参数化的,可以根据 spring 文档获取 ContextRefreshedEvent。在第二个错误中也正确导入了 PostInsertEvent。我不知道 NullPointerException 发生在哪里。
我的 javadoc:aggregate 插件配置如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
<configuration>
<excludePackageNames>org.hibernate.*;org.spring.*<-!-- ;com.***.hibernate.audit --></excludePackageNames>
<verbose>true</verbose>
<fork>true</fork>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<source>${java.source.version}</source>
<target>${java.target.version}</target>
<compilerVersion>${java.source.version}</compilerVersion>
<compilerArgument>-Xlint:all</compilerArgument>
<minmemory>128m</minmemory>
<maxmem>512m</maxmem>
<encoding>${project.build.sourceEncoding}</encoding>
<additionalparam>
-charset UTF-8
-docencoding UTF-8
-version
-author
-breakiterator
-linksource
-sourcetab 4
-windowtitle "${project.name} ${project.version} API Reference"
-doctitle "${project.name} ${project.version} API Reference"
-bottom "Copyright ${project.inceptionYear}-Present ${project.organization.name}. All Rights Reserved."
-link http://java.sun.com/javase/6/docs/api/
-link http://jsr311.java.net/nonav/releases/1.1
</additionalparam>
</configuration>
</plugin>
如果我排除注释包,那么构建运行正常。但是,如果我排除了包中的所有文件而不是包中的所有文件,那么它会崩溃并出现非常相似的错误。我可以在 eclipse 中很好地生成 javadoc。如果我编辑在使用 3.3.2.GA/hibernate-core-3.3.2.GA.jar 而不是 hibernate-core-4.1.8.Final.jar 失败后生成的选项文件然后运行 bat 文件。这会生成一个完整的聚合 javadoc 站点,但是,在运行中有几个与 @Typedef 相关的错误。 Javadoc 1.7_60 和 1.6_45 都以同样的方式失败。
最佳答案
固定:有一个bug在 1.6 和 1.7 的 javadoc 编译器中,没有 jar 的注释抛出 NPE。 1.8 javadoc 编译器可以工作,但是我仍然遇到错误,因为我没有正确的 jar。我不得不查看几个不同的 poms,因为我的一个模块有一个不同的 hibernate 库硬编码到其中。
最终结果:当我将该库更改为标准库时,maven 无法编译,但 javadoc:aggregate 可以正常运行。将两者都切换到我的模块中的版本也没有用。我最终不得不使用 this 从我的 javadoc 构建中删除模块变通。这无关紧要,因为它是一个实验模块,但如果我需要它,我会简单地添加一个配置文件,允许我在 javadoc 运行时更改版本。
希望没有人像我一样再次陷入困境。 :)
关于java - Maven javadoc :javadoc works but javadoc:aggregate throws errors that look like compiler errors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24564554/
我一直认为“throw”和“throw ex”的区别was that throw alone wasn't resetting the stacktrace of the exception. 不幸的
我需要处理这样的api错误代码,并为某些状态代码抛出错误。但是遵循代码显示了以上错误。我怎样才能做到这一点? func login(data: [String: Any], completion: @
我见过在 JavaScript 中抛出错误的 3 种不同方式: throw 'message'; throw Error('message'); throw new Error('message');
这个问题在这里已经有了答案: Exception handling : throw, throws and Throwable (8 个答案) 关闭 10 年前。 谁能简单介绍一下Java异常处理中
这是我的代码: func loadData() { ref.child(currentUserID!).observe(.childAdded) { (snapshot) in
可能很明显,但是我仍然无法理解throw和rethrow之间的区别,什么时候应该使用它们中的任何一个? 最佳答案 根据Effective Dart: If you decide to rethrow
这个问题在这里已经有了答案: "new" keyword in Scala (3 个答案) 关闭 5 年前。 在 Scala 中进行一些函数式编程,并且来自 Java 背景,我倾向于像这样抛出异常:
我有一个验证输入字符串的代码,如果输入字符串与所需的格式不匹配,我需要抛出 IllegalArgumentException,有多个字段,每个字段都有一组不同的验证条件,因此对于当前我正在执行的每个字
我的方法有一个抛出 NullPointerException 的返回类型。 public class Student { public String studentOne() {
有些帖子询问这两者之间的区别。 (为什么我要提这个...) 但我的问题在某种程度上有所不同,我在另一个错误神级处理方法中调用了“throw ex”。 public class Program {
谁能解释一下 throw、throws 和 Throwable 之间的区别以及何时使用哪个? 最佳答案 throws :在编写方法时使用,声明有问题的方法抛出了指定的(检查的)异常。 与检查的异常相反
我想知道编写异常收件箱和发件箱是否会改变特定程序的行为,例如 抛出 MyException(); 和 抛出(我的异常()); 我的代码: #include #include using names
抛出异常时,保留堆栈跟踪是最常见的期望行为,在 Java 中,这可以通过 throw ex; 获得,但在 C# 中,throw; 必须使用。 (另请注意,许多 C# 程序员经常错误地使用 throw
这个问题在这里已经有了答案: Exception handling : throw, throws and Throwable (8 个答案) 关闭 8 年前。 谁能举个例子说清楚Java异常处理中
这两个有什么区别吗? 最佳答案 异常是针对程序逻辑中的错误。 JVM 使用错误来表示环境有问题,例如 OutOfMemoryError 或 IncompatibleClassChangeError。
我试图到处寻找这个问题的答案,但似乎我运气不好。 我有一个非常简单的 Mongoose 模型 var userObject = { profile: { username: {
我遇到了这个重新抛出的异常,我很惊讶它甚至可以编译。 } catch(SomeException e) { ... throw(e); } 这个throw()和平时用的有什么区别吗?.
想象两段相似的代码: try { [...] } catch (myErr &err) { err.append("More info added to error..."); throw
我试图弄清楚Java中方法签名中的抛出和抛出语句之间的区别。方法签名中的抛出如下: public void aMethod() throws IOException{ FileReader f
这个问题在这里已经有了答案: throw Error('msg') vs throw new Error('msg') (2 个回答) 24 天前关闭。 没有 new 时抛出错误有什么缺点吗?关键词?
我是一名优秀的程序员,十分优秀!