maven与javadocs的依赖关系

Ant*_*nyW 10 java dependencies javadoc maven

3个问题:

下面是JUnit的两个maven依赖项.我一直在搜索互联网几个小时,似乎无法确定第二个是Javadoc +代码还是只有Javadoc.我需要一个还是两个?此外,将Javadocs包含在开发项目中而不是生产构建中的最有效方法是什么?(我不希望为每台机器上的每个依赖项手动下载javadoc.)

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <classifier>javadoc</classifier>
</dependency>
Run Code Online (Sandbox Code Playgroud)

编辑:问题:

  • 这些依赖关系有什么区别?
  • 我是否需要它们才能使用依赖项并且手头有Javadoc?
  • 将Javadocs包含在开发中的最佳实践是什么?

Kul*_*eep 12

通常,Javadocs主要不用作依赖项.因为在编译和运行时都不需要这些.它只是在开发或调试时帮助开发人员.

假设使用java IDE Eclipse,我们可以使用java docs作为引用.以下是我们可以将javadocs/sources与相应的jar关联起来的方法.

1.如果它是非maven项目: 下载javadocs jar或压缩文件,无论可用,并将其放在某个目录中.右键单击IDE Eclipse中的应用程序项目,单击Properties并选择Java Build Path,然后选择Java Build Path下的选项卡Libraries.现在展开要与java docs/source链接的jar.选择Javadoc位置链接并单击Edit按钮,将出现一个新窗口,我们需要选择javadocs jar路径.单击OK,我们已将javadoc/source链接到相应的jar.

在此输入图像描述

如果这是一个maven项目

如果我们使用Maven项目,那么在Project Explorer视图中的项目下转到Maven依赖项下的jar文件,如下所示.现在右键单击要添加Javadoc/source的jar文件,然后选择Maven,然后单击要与项目链接的Javadoc或Source.现在IDE将自动下载所需的javadoc/source,并将其与项目中相应的jar链接.

在此输入图像描述

您可以通过右键单击IDE中的项目来验证这一点,然后单击Java Build Path并选择Java Build Path下的Libraries选项卡,然后展开所需的jar,当您单击Edit按钮时,您将看到链接的路径带有相应jar的Javadoc/Source,如下图所示.

在此输入图像描述

3.如果是Maven项目,我们正在设置默认行为:

Eclipse将在开始时下载javadoc/source以及主要所需的jar.默认情况下,将指令设置为Maven以下载项目中链接的所有jar的Javadoc/sources.

单击Windows - 首选项 - 选择Maven,然后单击下载Artifact Javadoc复选框,如下所示

在此输入图像描述

现在点击apply并保存它,现在当你创建新的Maven项目时,默认情况下,Javadocs将被下载并链接到项目中的所有相关jar.
您可以通过右键单击项目和属性来验证,并在Java Build path下可以看到javadocs与所有jar链接,如下所示.

在此输入图像描述

如果您的项目是Maven项目,那么最好使用第二种方法,因为通过使用这种方法,IDE和Maven负责下载正确版本的Javadoc/source并将其与相关jar连接起来.

方法3是有点昂贵的,因为javadoc/sources将被下载到依赖的jar,可能你对所有依赖jar的javadocs/sources不感兴趣.


Joh*_*ent 9

一般来说,您的IDE将在maven项目中为您处理javadoc的解析.这假设您的IDE了解maven - 例如netbeans,intellij或eclipse w/m2e.

第二个工件只是javadocs.第一个工件是代码.几乎没有充分的理由将javadoc工件包含为依赖项.

  • 如果您按住Ctrl键并单击JUnit中的一个方法,您应该看到它拉入代码.然后当你将鼠标悬停在方法上时(例如`org.junit.Assert.assertNotNull`),你应该开始看到javadocs填充它们是否尚未启动. (4认同)
  • 谢谢!!仅第二段回答了关于SO的六个未决问题. (3认同)