编译项目时,Maven会从存储库(通常是中央存储库)下载相应的.jar文件(您可以配置不同的存储库,用于镜像或用于您自己的库,这些库不可用于中央存储库) 。
如果您的IDE了解Maven,它将解析pom
并自行下载依赖关系或要求Maven这样做。然后它会打开依赖关系的jar包,这就是你如何获得自动完成:IDE在幕后为你“导入”你的jar。
存储库不仅包含依赖关系的“.jar”文件,还包含描述其依赖关系的“.pom”文件。所以,maven会递归地下载它的依赖关系,并且你将得到编译你的软件所需的所有jar。然后,当你尝试运行你的软件时,你将不得不告诉JVM在哪里找到这些依赖关系(即,你必须把它们放在类路径中)。
我通常所做的就是将依赖关系复制到target/lib/
目录,因此部署软件和启动它很容易。要做到这一点,你可以使用maven-dependency-plugin
,您在<build>
注明:
<build>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</build>