我想确定我们从makefile发出的javadoc命令是否遇到任何错误或警告。目前,我可以看到我们遇到的错误是由于import语句不在我们指定给javadoc的类路径上(但应该是)。我最终想要修复我们的javadoc调用和内容,然后将其锁定,以便makefile捕获任何错误或警告并停止构建。但是,据我所知,文档没有提到javadoc命令的任何返回代码值。请注意,我们使用Java 7并从GNU makefile中的命令运行javadoc,而不是从Ant或Maven运行。你有什么建议我这样做?
更新:我的命令如下:
<path1>/javadoc -overview <path2>/overview.html -sourcepath <path3> <file1> <file2> <dir1> <dir2> -d <output_dir>
我在电话会议中看不到任何会导致错误被视为警告的内容。
这是输出中的一个片段,显示我看到的错误/警告消息:
....
Constructing Javadoc information...
../../../<path>/<filename>.java:5: error: package javax.servlet.http does not exist
import javax.servlet.http.HttpSessionBindingEvent;
....
“错误”这个词出现在它们中,但最后,输出只显示“50个警告”。如果我添加了其他问题(例如其中一个答案中建议的@invalid
标记),我会收到51个警告。
答案 0 :(得分:0)
我刚从命令行尝试过,当没有错误时,返回零值:
> javadoc my.package.name
> ....
> echo $?
> 0
使用以下命令编辑javadoc命令后
/**
* @invalid
*/
并再次运行相同的javadoc命令,我收到一条错误消息,返回代码为1:
> javadoc my.package.name
> ....
> ./my/package/name/Coordinate.java:21: error: unknown tag: invalid
> * @invalid
> ^
> ....
> echo $?
> 1
所以你应该检查javadoc
的返回值是否为0。如果您不知道如何查看退货,请阅读this SO question and answer
答案 1 :(得分:0)
即使javadoc 1.7报告错误,它返回零返回值,因此构建不会捕获它。但是,javadoc 1.8返回非零返回值,构建确实会捕获它。