我正在创建一个本地Java实用程序库,并将其构建到一个JAR文件中.我还在为Javadoc构建一个JAR文件.

以下是Maven生成的JAR文件:

inside target/ directory, JAR files called redacted-libraries-0.0.1.jar and redacted-libraries-0.0.1-javadocs.jar

现在,我正在try 通过将其导入到文件和项目 struct 中来使用带有IntelliJ IDEA的Javadocs JAR文件,并且成功了.我在我的IDE中获得了代码引用的提示和文档.但是,一旦我重新加载我的Maven项目,Javadoc就消失了,我必须手动将其添加回来.

每次我添加回Javadoc JAR文件时,也会从IntelliJ收到此警告.

Library 'Maven:com.redacted-library.0.0.1' is imported from Maven. Any changes made in its configuration might be lost after reimporting.

将一个Javadoc JAR文件添加到Maven项目中的正确方式是什么?

推荐答案

Pure Maven(好的IDE应该认识到这些):

mvn dependency:resolve -Dclassifier=javadoc

参考文献:https://maven.apache.org/plugins/maven-dependency-plugin/resolve-mojo.html

注意:使用主构件"打包"(依赖项)javadoc是相当不寻常的(除非有明确的命令)……在maven中,"我们"宁愿为"main"/Sources/和javadoc维护(自己的!)构件(参见:https://maven.apache.org/repository/guide-central-repository-upload.html).

正如前面提到的,好的IDE应该能够处理未定义的依赖项的javadoc(和源)构件的"本地存储库".

要"下载源代码",请使用:

mvn dependency:sources

参考文献:https://maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html;)


当您的(远程)存储库不符合"中心要求"(没有附加"源"和"javadoc"构件)时, 此外,为了消除(任何)<scope>system</scope>依赖项,我强烈建议(将依赖项"mavenize"化并)安装/部署源代码和javadoc构件:

  • 本地号码:mvn install:install ...
  • "回购":mvn deploy:...

有关"mavenize"的信息,请参阅:

特别是针对源代码和javadoc构件(一旦您拥有/生成这些构件):


"纯IDE"的方法是链接到(外部!)源代码/javados(在文件系统/压缩/jar存档中): ...请参见屏幕截图:

screenshot

  • com.example:my-dep:0.0.1-SNAPSHOT是我的(假的)system作用域依赖项.
  • 在"应用"更改并确认警告对话框(IML vs POM,重新导入...)之后,IntelliJ应该会重新编码javadoc和源代码.
  • 根据警告,我们的"修改"在"maven重新导入"的情况下会丢失.

Java相关问答推荐

使用Java Streams API比较两个不同的Java集合对象和一个公共属性

Quarkus keycloat配置不工作.quarkus. keycloak. policy—enforcer. enable = true在. yaml表示中不工作

Intellij显示项目语言级别最高为12,尽管有java版本17 SDK

我无法将附件发送到NetBeans之外

Java .类参数不通过构造函数传递

在Java中,在单个逻辑行中连接列表和单个元素的正确方法是什么?

如何在EXCEL单元格中添加形状和文本

Javadoc在方法摘要中省略方法

在执行流和相关操作时,使用Java泛型为2个方法执行相同的操作,但对象不同

如何在不删除Java中已有内容的情况下覆盖文件内容?

如何将Java文档配置为在指定的项目根目录中生成?

buildDir:File!&#的getter解决方案是什么?39.被抛弃

删除打印语句会影响功能...腐败在起作用?

try 使用类来包含JSON响应

如何在@CsvSource中传递空格作为值

如何在不作为类出现的表上执行原生查询?

如何在运行docker的应用程序中获取指定的配置文件

在实例化中指定泛型类型与不指定泛型类型之间的区别

SonarQube在合并升级到java17后对旧代码提出错误

如何使用java区分以下结果