我正在为API构建JavaDoc,其中API中的类依赖于R.java.我想构建引用缺少的R.java文件的Javadoc w/o符号错误,即使我设置failOnError false
构建成功但我们的Jenkins作业会在成功构建中发生错误时将构建报告为失败.下面的任务将成功创建javadocs,但会在构建过程中报告与未找到R.java相关的错误.
android.libraryVariants.all { variant ->
def name = variant.name.capitalize()
task("generate${name}Doclava", type: Javadoc) {
description "Generates Javadoc for $variant.name."
source = variant.javaCompile.source
title = null
// use android.bootClasspath instead of building our own path to android jar
//ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
// hardcoded path to generated R.java file to avoid javadoc compile issues
ext.R = "build/generated/source/r/minSDK15/release"
classpath += project.files(android.sourceSets.main.java.srcDirs, variant.javaCompile.classpath.files, android.bootClasspath)
destinationDir = file("${project.docsDir}/${name}/doclava")
options {
docletpath = configurations.jaxDoclet.files.asType(List)
doclet "com.google.doclava.Doclava"
bootClasspath new File(System.getenv('JAVA_HOME') + "/jre/lib/rt.jar")
addStringOption "XDignore.symbol.file", …
Run Code Online (Sandbox Code Playgroud) 我正在创建一个自定义doclet,我希望在我的Maven构建中使用Javadoc插件运行,但是现在我想在Eclipse中测试/调试Doclet.我怎样才能做到这一点?
我是否必须以编程方式调用javadoc?如何?
我想用Bootstrap主题生成api doc 但是如何实现这个目的?
嗨,我正在研究我们用于应用程序的相当大的内部SDK.我配备了大量的Javadocs.现在我的目标是以某种方式从这些javadoc生成.MD文件,以便我可以直接将这些.md文件放入我的bitbucket wiki中.
有没有办法实现这个或生成bitbucket wiki可以使用的任何其他文件格式?
我知道如何为类/接口/包的子集生成Javadoc.但有没有办法只为一部分公共方法生成Javadoc?
我更喜欢的是能够将方法(Javadoc标记或注释)标记为属于某个API或不属于它.然后有一个工具只为指定的方法集生成Javadoc - 形成API的方法.
公共/私有/包访问方法之间的选择对我的项目来说是不够的.公共方法可能属于公共API,也可能属于API 1,但不属于API 2.本质上,我希望能够从公共方法的任意子集中选择API.
我想扩展Javadoc5.0提供的标准doclet来修改它的HTML输出.例如,我希望在生成的JavaDoc HTML中发生关键字'implemented'或'Interfaces',而不是其他单词.不应更改所有其他元素.我怎样才能做到这一点?生成Javadoc后我不想修改HTML源代码!我必须扩展哪些类?网上有一个有用的教程吗?我搜索了教程,但发现只有这个http://docs.oracle.com/javase/1.5.0/docs/guide/javadoc/doclet/overview.html这对我没什么帮助,因为这些例子没有扩展标准doclet.在http://www.oracle.com/technetwork/java/javase/documentation/index-137483.html#customizingjavadoc上找到了另一个来源,但我无法将其应用于JavaDoc5.0.任何人都能提供一个有用的例子吗?谢谢!
有什么东西可以用来解析JavaDoc,这样我就可以在运行时通过标准的Doclet接口对它进行操作了吗?基本上,Doclet的反向操作.
我知道为每个Javadoc写一个解析器是不可能的(因为这可以是一个任意的文档格式),但我很想知道是否有类似的标准Doclet.
我写了一个doclet来收集一些数据并将其传递给记者.我希望这位记者能够互换.我尝试使用additionalDependency和/或pluginDependency将一个报告器实现添加到doclet类路径.我无法使用Java 6服务加载器加载报告器实现,也无法使用doclet类加载器或线程上下文类加载器来获取类.
如何将test.TestReporterImpl导入test-doclet类路径?
在doclet中:
apiReporterServiceLoader = ServiceLoader.load(TestReporter.class); // test.TestReporter
apiReporterServiceLoader.iterator().hasNext(); // false
Thread.currentThread().getContextClassLoader().loadClass("test.TestReporterImpl"); // ClassNotFoundException
getClass().getClassLoader().loadClass("test.TestReporterImpl"); // ClassNotFoundException
Run Code Online (Sandbox Code Playgroud)
在执行doclet的pom中
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.3</version>
<executions>
<execution>
<id>run-my-doclet</id>
<goals>
<goal>javadoc</goal>
</goals>
<phase>generate-resources</phase>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>test</groupId>
<artifactId>test-doclet-test-reporter</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<configuration>
<doclet>test.TestDoclet</doclet>
<docletArtifact>
<groupId>test</groupId>
<artifactId>test-doclet</artifactId>
<version>${project.version}</version>
</docletArtifact>
<additionalDependencies>
<additionalDependency>
<groupId>test</groupId>
<artifactId>test-doclet-test-reporter</artifactId>
<version>${project.version}</version>
</additionalDependency>
</additionalDependencies>
<useStandardDocletOptions>false</useStandardDocletOptions>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
测试的doclet - 测试 - 记者/ src目录/主/资源/ META-INF /服务/ test.TestReporter
test.TestReporterImpl
Run Code Online (Sandbox Code Playgroud) 我正在使用 JDK 1.7 编写一个全新的自定义 doclet。这些是我目前发现的问题:
文件的方法isAnnotationType()
,isAnnotationTypeElement()
,isEnum()
并且isEnumConstant()
不工作。他们总是返回 false。
PackageDoc
方法enums()
不起作用。它总是返回一个空数组。Enums
包含在方法allClasses()
和的结果中ordinaryClasses()
。
ClassDoc
方法enumConstants()
不起作用。它总是返回一个空数组。Enum
常量包含在 method 的结果中fields()
。
PackageDoc
方法annotationTypes()
不起作用。它总是返回一个空数组。Annotations
包含在 method 的结果中interfaces()
,因此我可以实施以下解决方法:
AnnotationTypeDoc annotationDoc;
ClassDoc[] interfaces = packageDoc.interfaces();
for (ClassDoc classDoc : interfaces) {
if (classDoc instanceof AnnotationTypeDoc) {
annotationDoc = (AnnotationTypeDoc) classDoc;
} else {
continue;
}
process(annotationDoc); …
Run Code Online (Sandbox Code Playgroud) I have a problem with the Maven Javadoc Plugin and a custom doclet.
I'm using the maven-javadoc-plugin v2.10.1 and a custom doclet which is basicly a maven jar project.
I have also a settings.xml
which defines the central
repository to a custom artifactory.
The problem is that evertime I run the maven-javadoc-plugin it tries to resolves the dependencies of the custom doclet from https://repo.maven.apache.org/maven2
, the doclet himself it resolves from the custom artifactory.
The debug output is also …