I want to export my code in a jar so I can reuse it in other projects. The question here is how to include the java-doc i wrote in the code in a way that it is displayed in the project where I use the jar file when displaying Quick documentation lookup (intellij ctrl+Q). How can I achieve that?
I commented the code where I need reference for usage like
/**
/* This is the method that is doing ....
/* @returns further info
public void bla() { ... }
I managed to export a separate jar file for java-doc and classes using maven. I want the docs to be displayed when I press ctrl+Q. I tried to import the docs manually - it works but this is really annoying. I want to tie them together in a jar containing both.
I've searched a lot of questions in here, the answer's are mostly like: "just don't do that because java is not meant to do so. ... " update: as I know now, that makes sense. I didn't knew how the repo-manegment of maven worked so I was confused on that. For others who are stuck here: the libs are stored in .m2/repository/com.example.lib/1.x/ (at least at my PC) where source.jar and java-doc.jar are stored sperate
But if I include the dependencies from maven remote repository, the docs will be available locally. I will have a quick reference by just pressing ctr+Q. I really want to have this with my own libs because I cant remember code I wrote years ago.
Can someone please help me with that? What should I type in pom.xml?
The quick answer is: you don't need to add other settings in pom.xml
(if you have no other requirements).
You only need to generate 3 files (xxx.jar, xxx-sources.jar, xxx-javadoc.jar).
In the state of using the default value, you don't need to add any other additional settings.
Run Command:
mvn clean package source:jar javadoc:jar
Run Command:
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
├── 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;
}
}
You only need to generate 3 files (xxx.jar, xxx-sources.jar, xxx-javadoc.jar).
In the state of using the default value, you don't need to add any other additional settings.
Run Command:
mvn clean package source:jar javadoc:jar
Run Command: Copy pom.xml
to target
dir
copy pom.xml targert/
target dir files
target
├── Hello-1.0-SNAPSHOT.jar
├── Hello-1.0-SNAPSHOT-javadoc.jar
├── Hello-1.0-SNAPSHOT-sources.jar
└── pom.xml
Run Command: install jar and source jar , javadoc jar to maven local 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
(Ref: https://maven.apache.org/plugins/maven-install-plugin/usage.html )
TestHello
├── pom.xml
└── src
└── main
└── java
└── org
└── example
└── Main.java
ADD org.example Hello dependency
<dependency>
<groupId>org.example</groupId>
<artifactId>Hello</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
then you can use Ctl+Q , show javadoc,
you can use Key F4 Jump to Source
.