阅读(651) (0)

Maven 依赖

2017-01-09 19:18:23 更新

Maven教程 - Maven依赖


当编写Java代码时,我们总是需要一些库,例如,做单元测试我们需要JUnit库,做String操作我们需要Apache Common Util库。

对于更大的项目,我们可能需要创建自己的库并在不同的部分使用它的项目。

库Java文件打包在JAR文件中,需要这些JAR文件在编译项目代码时在类路径上。

不同的项目需要不同版本的库。 保持项目最新的库JAR文件的正确版本不是一个容易的任务。

每个外部JAR可能还依赖于其他外部JAR文件等。以递归方式下载所有这些外部依赖JAR文件并确保下载正确的版本是一项巨大的任务。

当项目越来越大,我们将需要越来越多的外部依赖。



Maven依赖管理

当项目越来越大,我们将需要越来越多的外部依赖。...

Maven将下载它们并将它们放在您的本地Maven存储库中。

Maven将下载它们并将它们放在您的本地Maven存储库中。...

我们可以在POM文件中的dependencies元素内指定依赖关系。

这里是一个例子:

<project ...>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.java2s.crawler</groupId>
    <artifactId>java-web-crawler</artifactId>
    <version>1.0.0</version>
    <dependencies>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.7.3</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>


注意

在上面的代码中有两个依赖元素。每个依赖项元素描述一个外部依赖项。

每个依赖关系由其groupId,artifactId和版本描述。

我们使用groupId,artifactId和version来识别自己的项目在顶部pom文件。 我们还使用这三个字段来标识库。

我们使用groupId,artifactId和version来识别自己的项目在顶部pom文件。 我们还使用这三个字段来标识库。...

当执行此POM文件时,这两个依赖项将从中央Maven存储库下载并放入本地Maven存储库(如果缺少依赖项)您的本地Maven存储库。

如果已经在本地存储库中找到依赖项,Maven将不会下载它们。

如果给定的依赖在中央Maven存储库中不可用。您可以自己下载依赖关系并将其放入本地Maven存储库。

记住将其放入与groupId,artifactId和版本匹配的子目录结构中。 用/代替所有点(。),并用 / 分隔groupId,artifactId和版本。

以上示例下载的两个依赖项将放入以下子目录中:

MAVEN_REPOSITORY_ROOT/junit/junit/4.8.1
MAVEN_REPOSITORY_ROOT/org/jsoup/jsoup/1.7.3

外部依赖

Maven外部依赖关系是不在本地或远程的依赖JAR文件Maven仓库。

外部依赖项可能位于您自己的本地硬盘上。

外部依赖项可能位于您自己的本地硬盘上。...

我们可以这样配置一个外部依赖:

<dependency>
  <groupId>mydependency</groupId>
  <artifactId>mydependency</artifactId>
  <scope>system</scope>
  <version>1.0</version>
  <systemPath>${basedir}\war\WEB-INF\lib\mydependency.jar</systemPath>
</dependency>    

我们可以这样配置一个外部依赖:...

scope 元素值设置为system。 systemPath 元素指向JAR文件的位置。

scope 元素值设置为system。 systemPath 元素指向JAR文件的位置。...

快照依赖关系

快照依赖关系是开发中的依赖JAR文件。

不是不断地更新版本号以获得最新版本,您可以将依赖项JAR文件标记为快照,以便Maven始终下载它。

即使匹配的快照版本已下载到本地存储库中,快照版本也始终会下载到本地存储库中。

即使匹配的快照版本已下载到本地存储库中,快照版本也始终会下载到本地存储库中。...

这里是一个版本元素的例子:

<version>1.0-SNAPSHOT</version>

这里是一个版本元素的例子:...

当在pom.xml中声明 dependency 元素时,我们必须使用 -SNAPSHOT 以及以下。

<dependency>
    <groupId>com.jenkov</groupId>
    <artifactId>java-web-crawler</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

附加到版本号的 -SNAPSHOT 标记快照依赖库在Maven。

我们可以配置Maven在Maven settings.xml 文件中下载快照依赖关系的频率。