Maven 依赖
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
文件中下载快照依赖关系的频率。