在pom.xml中,我有这样的声明
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
有没有办法从命令行关闭它?
我知道我可以将其提取到配置文件中,但这不是我想要的.
java command-line command-line-arguments maven maven-javadoc-plugin
我正在使用JDK8(在Jenkins推出的Linux上使用Win x64 u25 JDK +在我的Eclipse工作区上尝试过它 - jdk-8u20-linux-x64,两者都有同样的问题).
我有多模块Maven项目(我从包装类型为"pom"的主模块启动Maven目标"javadoc:aggregate").
Pom构建部分如下所示:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
我总是收到错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.1:aggregate (default-cli) on project uloan-global-build: An error has occurred in JavaDocs report generation:
[ERROR] Exit code: 1 - javadoc: error - com.sun.tools.doclets.internal.toolkit.util.DocletAbortException: com.sun.tools.doclets.internal.toolkit.util.DocletAbortException: com.sun.tools.doclets.internal.toolkit.util.DocletAbortException: com.sun.tools.javac.code.Symbol$CompletionFailure: class file for javax.interceptor.InterceptorBinding not found
[ERROR]
[ERROR] Command line was: /usr/java/jdk1.8.0_20/jre/../bin/javadoc @options @packages
Run Code Online (Sandbox Code Playgroud)
我已尽力尝试一切,并试图在Google上搜索很长时间,但没有成功.我找到了人们遇到类似问题的链接,但没有任何关于可能的解决方案的信息:
http://marc.info/?l=maven-user&m=139615350913286&w=2
http://mail-archives.apache.org/mod_mbox/maven-users/201409.mbox/%3C54101E24.6060304@gmx.de%3E(建议将JDK8更新为>更新20,我做了,但问题仍然存在相同).
任何提示或任何人都经历过这种行为(不幸的是,由于某种原因,它看起来非常"罕见")?非常绝望...
现在我正在使用maven-javadoc-plugin将Javadoc附加到.jar工件上.
但是,如何以html格式生成Javadoc,以便我们可以将其scp到远程服务器以供参考?
谢谢!
Exit code: 1 - javadoc: error - The code being documented uses packages in the unnamed module, but the packages defined in https://docs.oracle.com/en/java/javase/11/docs/api/ are in named modules.
Run Code Online (Sandbox Code Playgroud)
有没有人能够使 javadoc 工作而不必将源版本更改为 1.8(如其他论坛中所建议的那样)?我正在使用 JDK v11.0.5 并且问题仍然存在(JDK 12+ 也是如此)。
编辑:此错误源自 maven 并由 maven-javadoc-plugin 抛出。即使使用<source>8</source>配置,我也无法使其适用于 JDK 11+ 。
我正在为一个包含2,509个类的模块构建一个Javadoc.这目前每秒需要7分钟或6个文件.
我试过了
mvn -T 1C install
Run Code Online (Sandbox Code Playgroud)
但是javadoc只使用1个CPU.有没有办法使用更多和/或加快?
我正在使用Oracle JDK 8更新112.我的开发机器有16个内核和128 GB内存.
运行飞行记录器我可以看到只有一个线程 main
对于那些感兴趣的人,我使用了以下选项:
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<additionalJOptions>
<additionalJOption>-J-XX:+UnlockCommercialFeatures</additionalJOption>
<additionalJOption>-J-XX:+FlightRecorder</additionalJOption>
<additionalJOption>-J-XX:StartFlightRecording=name=test,filename=/tmp/myrecording-50.jfr,dumponexit=true</additionalJOption>
<additionalJOption>-J-XX:FlightRecorderOptions=loglevel=debug</additionalJOption>
</additionalJOptions>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
注意:一种解决方法是:
-Dmaven.javadoc.skip=true
Run Code Online (Sandbox Code Playgroud) 我的团队正在使用功能分支来实现新功能,并不断将快照构建部署到远程仓库中供我们的用户使用.因此,"部署"实际上只意味着"分发到远程Maven存储库".我们目前只为主分支而不是功能分支运行持续集成构建,原因如下:我们使用Maven构建我们的项目并在JAR旁边分发JavaDoc和源代码.
我的计划现在是为每个功能分支构建添加一个分类器,并期望在创建和部署这样的工件时使用一个分类器:
文物:foo-${version}.jar,foo-${version}-sources.jar,foo-${version}-javadoc.jar
分支:特征-X
foo-${version}-feature.jar,foo-${version}-sources-feature.jar,foo-${version}-javadoc-feature.jar我并不真正关心工件的确切命名,我只需要为功能分支单独的main,source和JavaDoc工件.事实证明,JavaDoc插件和源插件都没有考虑配置的分类器,因此有效地覆盖了为我的主构建创建的工件.
我真的不想改变artifactId,虽然这可能会解决问题.你如何处理功能分支和与Maven的持续集成?
continuous-integration feature-branch maven maven-javadoc-plugin maven-source-plugin
我有一个用Maven构建的多模块java项目,我想用它来生成javadocs javadoc:aggregate.项目结构如下:
parent
??lomboklib
??other
Run Code Online (Sandbox Code Playgroud)
我也使用Project Lombok在项目中生成一些方法.通过首先使用Lombok maven插件运行delombok,我已成功将其配置为使用单个模块.对于单个模块(lomboklib),这将生成源代码
target/generated-sources/delombok
Run Code Online (Sandbox Code Playgroud)
然后由maven-javadoc-plugin和javadoc工具处理.这最初是在这个问题中解决的.
如何配置javadoc:aggregate报告以使用生成的源?
我用Github中的所有模块定义提出了问题的沙箱.理想情况下,我应该能够跑步
mvn clean compile javadoc:aggregate
Run Code Online (Sandbox Code Playgroud)
在父项目中,让整个项目编译并获取整个项目的javadocs.
从Java 9升级到10后,链接到JDK不再工作时的Javadoc工具生成的文件(例如,对于文件导入java.util.Optional,{@link Optional}呈现为Optional而不是作为Optional;同一个问题有@see,@param,@return,和其他地方,你通常看到的Javadoc链接).
我有一个简单的模块化项目,我使用Maven用的Javadoc插件(source和target选项设置10在configuration编译器插件部分).我的理解是,默认情况下它会传递-link https://docs.oracle.com/javase/10/docs/api/给Javadoc工具.我的理解是,从历史上看,Javadoc工具期望一个名为的文本文件package-list存在于被告知要查找外部文档的URL中.Java 8 有一个.Java 9 有一个.Java 10 没有(404错误).显然,Javadoc工具现在输出一个名为element-list而不是package-list模块化项目的文本文件,但似乎也没有提供(Java 9也没有提供,但它可用于早期访问的Java 11版本).
通过IntelliJ生成Javadoc并Link to JDK documentation启用该选项会产生相同的结果.它说,它传递-link https://docs.oracle.com/javase/10/docs/api/给javadoc.exe,并报告javadoc: error - Error fetching URL: https://docs.oracle.com/javase/10/docs/api/.尽管有错误,它确实输出了Javadoc,但与Maven一样,没有JDK链接.
这应该怎么样?当他们将JDK文档放到网上时,Oracle是否搞砸了?
我的相关部分pom.xml:
<build>
<plugins>
<plugin> …Run Code Online (Sandbox Code Playgroud) 我正在使用Maven Javadoc插件.它输出如下警告:
[ERROR] /home/monperrus/spoon/src/main/java/spoon/visitor/CtVisitor.java:144:
warning: no @param for <T>
Run Code Online (Sandbox Code Playgroud)
如何将这些警告显示为[WARNING](而不是令人困惑[ERROR])?
我想与javadoc和Maven站点一起部署一个工件.我用
clean javadoc:jar site deploy site:deploy
Run Code Online (Sandbox Code Playgroud)
(在site和之间的分割site:deploy只是为了避免在deploy失败的情况下部署站点).
现在javadoc创建了两次 - 一次进入javadoc:jar,一次进入site.是否可以只创建一次并将其用于javadoc-jarNexus和Maven站点?