【问题标题】:Understanding Java Artifacts and Maven了解 Java 工件和 Maven
【发布时间】:2016-10-27 08:18:04
【问题描述】:

我正在尝试了解工件、组、类定义之间的关系。

例如,我见过以下工件声明:

<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.0</version>
  1. 是否有与此工件相关联的文件?
  2. 在构建 Maven 项目时,这些信息是否足以将文件下拉?
  3. 从哪里获取文件?它是从 selenium 中获取的,还是 Maven 包含这些工件,并且它是从 Maven 中获取的? 它究竟是从哪里下载工件的?
  4. 工件文件中有什么?类定义?里面可以定义多个类,对吧?
  5. Maven 似乎正在制作一个 jar 文件。是否将所有类复合到该文件中?
  6. 另外,artifact 文件与 JAR 文件有何不同,您可以制作自己的 artifact 文件吗?

【问题讨论】:

    标签: maven selenium


    【解决方案1】:
    1. 是否有与此工件相关联的文件?

    是的,您发布的内容称为坐标。它引用了 selenium-java 组中的一个名为 org.seleniumhq.selenium 的 jar。

    由坐标的groupId 组件标识的组是在 maven 中为工件命名空间以防止命名冲突的一种方式。

    该坐标表示该项目依赖于 2.53.0org.seleniumhq.selenium 中名为 selenium-java 的 maven 工件的版本。

    1. 在构建 Maven 项目时,这些信息是否足以将文件下拉?

    是的,坐标是工件在 maven 存储库中的位置,是构建 maven 项目时定位和下载工件的足够信息。

    1. 从哪里获取文件?它是从 selenium 中获取的,还是 Maven 包含这些工件,并且它是从 Maven 中获取的? 它究竟是从哪里下载工件的?

    从哪里检索文件取决于您的 Maven 配置。默认情况下,maven 将首先检查您机器上的本地 maven 存储库,以查看工件是否已下载。如果没有,它将检查Maven Central

    您还可以使用 Nexus 或 Artifactory 等工具托管您自己的 Maven 存储库,这些工具可以镜像 Internet 上的存储库(例如 Maven Central),以及存储您自己创建但不与他人共享的工件。

    1. 工件文件中有什么?类定义?里面可以定义多个类,对吧?

    工件可以是任何类型的文件。在工件上方的 selenium 坐标的情况下,是一个 jar 文件。还有一个与该坐标相关联的 pom 文件,它解释了 selenium-java jar 的所有依赖项。

    1. Maven 似乎正在制作一个 jar 文件。是否将所有类复合到该文件中?

    您可以使用 maven 构建普通 jar 或 fat jar。默认情况下,maven 将构建一个普通的 jar。如果您希望将所有 jars 依赖项打包在其中(即 fat jar),则需要使用特殊的 maven 插件。

    1. 另外,artifact 文件与 JAR 文件有何不同,您可以制作自己的 artifact 文件吗?

    Artifact 是一个通用术语,用于描述您可以存储在 maven 存储库中的任何内容。 Maven 存储库可以存储许多不同类型的文件。在这个坐标的情况下,工件是一个 jar 文件。

    【讨论】:

    • 感谢 gregwhitaker!
    猜你喜欢
    • 2011-05-07
    • 2016-01-27
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 2015-05-16
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多