我正在尝试使用maven网站插件创建一个基本的maven网站.所以我把它添加到我的pom:
<reporting>
<plugins>
<!--JavaDoc setup-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.7</version>
<configuration>
<defaultAuthor>Leon Blakey</defaultAuthor>
<defaultVersion>${project.version}</defaultVersion>
<links>
<link>http://download.oracle.com/javase/6/docs/api</link>
</links>
</configuration>
</plugin>
</plugins>
</reporting>
Run Code Online (Sandbox Code Playgroud)
跑了 mvn site --errors
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building pircbotx 1.3-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-site-plugin:2.0.1:site (default-site) @ pircbotx ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.688s
[INFO] Finished at: Wed Jan 12 18:08:00 EST 2011
[INFO] Final Memory: 5M/13M
[INFO] ------------------------------------------------------------------------
W:\programming\pircbot-hg>
Run Code Online (Sandbox Code Playgroud)
嗯,奇怪的是没有输出.所以当我检查目标/网站时,它是空的.唯一的文件夹是images /,css …
我遇到了一个有趣的问题,我不太确定如何侦察它:
maven-compiler-plugin使用eclipse编译器而不是javacmvn site,maven-javadoc-plugin失败有没有什么办法解决这一问题?如果没有,是否至少有进一步调试的方法?
我正在使用Java 1.6.0_27和Maven 3.0.2.
我一直在使用javac编译器来构建我们的代码库,但是我对尝试Eclipse编译器感兴趣,因为它产生了更好的警告(并且在其他方面更易于配置).
所以我maven-compiler-plugin将pom.xml中的定义更改为:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<compilerId>eclipse</compilerId>
<source>1.6</source>
<target>1.6</target>
<compilerArgument>-warn:+boxing,enumSwitch,javadoc,hashCode</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>1.8.2</version>
</dependency>
</dependencies>
</plugin>
Run Code Online (Sandbox Code Playgroud)
在我的<reporting>部分中,我有:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.我做了一个mvn clean install,一切都很好,所有测试都通过,一切看起来都很棒.
但是当我尝试运行时mvn site,当它到达Javadoc报告时,它失败了,似乎是一个Javadoc崩溃:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.0:site (default-site) on project framework: Error during page generation: Error rendering Maven report:
[ERROR] …Run Code Online (Sandbox Code Playgroud) 我想与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站点?
我有一个maven项目,其中包含以下POM代码段:
<modelVersion>4.0.0</modelVersion>
<artifactId>Foo-Deploy</artifactId>
<name>Foo-Deploy</name>
<packaging>pom</packaging>
<description>foobar</description>
<dependencies>
<dependency>
<groupId>de.foo.bar</groupId>
<artifactId>some-api</artifactId>
<version>${project.version}</version>
<classifier>doc</classifier>
<type>zip</type>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
我们的想法是定义一个依赖关系,其中有一些来源(这是之前成功创建的).现在我想在这个依赖项上运行javadoc.我打电话的时候
mvn javadoc:jar -DincludeDependencySources=true -DdependencySourceIncludes=de.foo.bar:some-api:*:doc:zip
Run Code Online (Sandbox Code Playgroud)
它失败了
不执行Javadoc,因为项目不是支持Java类路径的包
怎么了 ?无论如何它会工作吗?
或者我如何从特定依赖项生成javadoc(假设此项目具有更多依赖项)?
谢谢
关于如何在Java 8中关闭神圣的JavaDoc lint功能有很多信息.信不信由你,今天我决定使用这个功能并修复我的JavaDocs.然而,在其标准配置中,它抱怨每一个可能缺失@param和@return.从我在Java 8 javadoc技术文档的JavaDoc文档中看到的,我的选择是-Xdoclint:all,-missing.这应该包括所有检查,但不要对错过的文件机会提出投诉.maven配置如下所示:
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<configuration>
<additionalparam>-Xdoclint:all,-missing</additionalparam>
<aggregate>false</aggregate>
</configuration>
<reportSets>
<reportSet>
<id>default</id>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
Run Code Online (Sandbox Code Playgroud)
但是当mvn site我运行时,我得到错误:
[ERROR] Exit code: 1 - javadoc: error - invalid flag: -missing
Run Code Online (Sandbox Code Playgroud)
我怀疑maven中的参数处理是个问题,但引用并没有帮助.
任何想法如何使用这个?以合理的方式检查JavaDoc的任何其他良好实践?
我有一堂课,如下所示:
@Data
@Builder
public class Foo {
private String param;
/** My custom builder.*/
public static FooBuilder builder(String _param){
return builder().param(_param);
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
[错误]无法在项目foo上执行目标org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:javadoc(default-cli):JavaDocs报表生成中发生错误:
[错误]退出代码: 1-/home/workspace/foo/src/main/java/com/foo/Foo.java:34:错误:找不到符号
[ERROR]公共静态FooBuilder builder(String _param)
[ERROR] ^
[ERROR]符号: FooBuilder类
[错误]位置:Foo类
A mvn release:perform is failing due to javadocs not being created. So I tried running
mvn javadoc:javadoc
Run Code Online (Sandbox Code Playgroud)
myself and I see that it fails due to the javadoc comments in the source code not having definitions for all of the parameters and return values. Errors are of the format:
Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.0.1:jar (attach-javadocs) on project my-project: MavenReportException: Error while generating Javadoc:
Exit code: 1 - /my/file.java:36: warning: no description for @return
Run Code Online (Sandbox Code Playgroud)
This, however, used to work. So what …
我正在以目标构建我的 Maven 项目site。输出中有 Javadoc 警告。在这种情况下,我的 Maven 构建必须失败。有没有办法做到这一点?
这是我的 POM 的代码片段(我使用的是 Maven 3.3):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.5</version>
<configuration>
<generateReports>true</generateReports>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.3</version>
<configuration>
<show>private</show>
<failOnError>true</failOnError>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud) 我正在使用 Maven Javadoc 插件,如下所示
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我安装了多个 JDK 版本,并且希望能够使用其中任何一个版本构建项目。上面的配置在 Java 8 上工作正常,但在 Java 11 上失败并出现以下错误
无法在项目上执行目标 org.apache.maven.plugins:maven-javadoc-plugin:3.1.1:jar (attach-javadocs) ...: MavenReportException: 生成 Javadoc 时出错: 无法找到 javadoc 命令: 环境变量JAVA_HOME 设置不正确。
显而易见的解决方案是设置 JAVA_HOME。但正如我提到的,我有多个版本的 JDK,因此每次我想使用另一个版本时都重新配置 JAVA_HOME 一点也不方便。
另一个解决方案(来自Unable to find javadoc command - maven)是将以下配置添加到插件中:
<configuration>
<javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这使得它可以与 Java 11 一起使用,但会破坏 Java 8,因为javadoc位置就${java.home}/../bin/javadoc在这种情况下。
理想情况下,我总是想从 Maven 使用的 java 可执行文件所在的目录中使用javadoc,但我还没有找到使用 Maven Javadoc 插件来实现这一点的方法。
在我的 .NET 中project,我试图在该工具生成的文档文件中包含指向模块化 Java 库 ( Caesar ) 的链接javadoc。跑步:
mvn clean install
Run Code Online (Sandbox Code Playgroud)
构建没有链接到外部库的文档。
我的配置:
project
|-- pom.xml
`-- src
`-- main
`-- java
|-- foo.bar.project
| `-- foo
| `-- bar
| `-- project
| `-- Foo.java
`-- module-info.java
Run Code Online (Sandbox Code Playgroud)
Foo.java:
package foo.bar.project;
import com.github.glusk.caesar.Bytes;
public class Foo {
public static Bytes bytes;
}
Run Code Online (Sandbox Code Playgroud)
module-info.java:
module foo.bar.project {
requires com.github.glusk.caesar;
}
Run Code Online (Sandbox Code Playgroud)
pom.xml:
package foo.bar.project;
import com.github.glusk.caesar.Bytes;
public class Foo {
public static Bytes bytes; …Run Code Online (Sandbox Code Playgroud) java javadoc maven java-platform-module-system maven-javadoc-plugin