在 Intellij 中创建 Java jar 库,其中包括 Quickdock(按 ctrl+Q 时显示的文档)

问题描述 投票:0回答:1

我想将我的代码导出到一个 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 中输入什么?

java maven jar javadoc maven-javadoc-plugin
1个回答
0
投票

快速回答

快速的回答是:您不需要在

pom.xml
中添加其他设置(如果您没有其他要求)。

生成3个文件

只需要生成3个文件(xxx.jar、xxx-sources.jar、xxx-javadoc.jar)。

在使用默认值的状态下,您不需要添加任何其他附加设置。

运行命令:

mvn clean package source:jar javadoc: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

pom.xml

<?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>

你好.java

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个文件

只需要生成3个文件(xxx.jar、xxx-sources.jar、xxx-javadoc.jar)。

在使用默认值的状态下,您不需要添加任何其他附加设置。

运行命令:

mvn clean package source:jar javadoc: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

测试项目-TestHello

├── pom.xml
└── src
    └── main
        └── java
            └── org
                └── example
                    └── Main.java

pom.xml

ADD org.example Hello 依赖

    <dependency>
        <groupId>org.example</groupId>
        <artifactId>Hello</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

在 IDEA 中打开 TestHello

然后你可以使用 Ctl+Q ,显示 javadoc, 你可以使用

go to Key F4 
跳转到源`.

© www.soinside.com 2019 - 2024. All rights reserved.