我想将我的代码导出到一个 jar 中,以便我可以在其他项目中重用它。 这里的问题是如何将我在代码中编写的 java-doc 包含在显示快速文档查找 (intellij ctrl+Q) 时显示在我使用 jar 文件的项目中的方式中。我怎样才能做到这一点?
我在需要参考的地方评论了代码
/**
/* This is the method that is doing ....
/* @returns further info
public void bla() { ... }
我设法使用 Maven 为 java-doc 和类导出一个单独的 jar 文件。我希望在按 ctrl+Q 时显示文档。我尝试手动导入文档 - 它有效,但这真的很烦人。我想把它们绑在一个装有两者的罐子里。
我在这里搜索了很多问题,答案大多是:“只是不要那样做,因为 java 不打算这样做。...”
但是如果我包含来自 maven 的依赖项,文档将在本地可用。只需按 ctr+Q,我就会有一个快速参考。我真的很想把它和我自己的库一起使用,因为我记不起几年前写的代码了。
有人可以帮我吗?我应该在 pom.xml 中输入什么?
快速的回答是:您不需要在
pom.xml
中添加其他设置(如果您没有其他要求)。
只需要生成3个文件(xxx.jar、xxx-sources.jar、xxx-javadoc.jar)。
在使用默认值的状态下,您不需要添加任何其他附加设置。
运行命令:
mvn clean package source:jar javadoc:jar
运行命令:
mvn install:install-file \
-Dfile=Hello-1.0-SNAPSHOT.jar \
-DpomFile=pom.xml \
-Dsources=Hello-1.0-SNAPSHOT-sources.jar \
-Djavadoc=Hello-1.0-SNAPSHOT-javadoc.jar \
-DgroupId=org.example \
-DartifactId=Hello \
-Dversion=1.0-SNAPSHOT \
-Dpackaging=jar \
-Dclassifier=sources \
-DgeneratePom=true \
-DcreateChecksum=true
Hello$ tree
.
├── pom.xml
└── src
└── main
└── java
└── org
└── example
└── Hello.java
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Hello</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
package org.example;
/**
* Hello This is a demo class.
*/
public class Hello {
/**
* default constructor
*/
public Hello(){
}
/**
* echo Demo Method
* @param msg any string.
* @return Return the original parameter content you passed in.
*/
public String echo(String msg){
return msg;
}
/**
* hello Demo Method
* @param msg any string.
* @return Return "HELLO" plus the original parameter content you passed in.
*/
public String hello(String msg){
return "HELLO "+msg;
}
}
只需要生成3个文件(xxx.jar、xxx-sources.jar、xxx-javadoc.jar)。
在使用默认值的状态下,您不需要添加任何其他附加设置。
运行命令:
mvn clean package source:jar javadoc:jar
运行命令:复制
pom.xml
到target
目录
copy pom.xml targert/
目标目录文件
target
├── Hello-1.0-SNAPSHOT.jar
├── Hello-1.0-SNAPSHOT-javadoc.jar
├── Hello-1.0-SNAPSHOT-sources.jar
└── pom.xml
运行命令:安装 jar 和 source jar ,javadoc jar 到 maven 本地 repo (
~/.m2
)
cd target
mvn install:install-file \
-Dfile=Hello-1.0-SNAPSHOT.jar \
-DpomFile=pom.xml \
-Dsources=Hello-1.0-SNAPSHOT-sources.jar \
-Djavadoc=Hello-1.0-SNAPSHOT-javadoc.jar \
-DgroupId=org.example \
-DartifactId=Hello \
-Dversion=1.0-SNAPSHOT \
-Dpackaging=jar \
-Dclassifier=sources \
-DgeneratePom=true \
-DcreateChecksum=true
(参考:https://maven.apache.org/plugins/maven-install-plugin/usage.html)
├── pom.xml
└── src
└── main
└── java
└── org
└── example
└── Main.java
ADD org.example Hello 依赖
<dependency>
<groupId>org.example</groupId>
<artifactId>Hello</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
然后你可以使用 Ctl+Q ,显示 javadoc, 你可以使用
go to Key F4
跳转到源`.