如何在Maven中管理编译时依赖项

时间:2013-10-21 15:49:58

标签: maven maven-2 maven-3

尽量避免使用行话,这样我就不会被误解。

这是场景,我的项目需要一个jar才能编译(比方说x.jar)。我的项目一旦编译就会被转换为WAR文件,并在某处部署。
现在我希望x.jar只是为了我的项目进行编译而不应该在WAR文件中打包(或部分)。

我怎么能在Maven中这样做?我应该将依赖范围用作“提供”

1 个答案:

答案 0 :(得分:2)

你是对的,如Maven FAQs所述,使用的范围是provided

  

如何防止在WEB-INF / lib中包含JAR?我需要一个“仅编译”范围!   提供了您应该使用的范围。这向Maven表明依赖关系将在运行时由其容器或JDK提供,例如。

     

此范围的依赖关系不会传递,也不会捆绑在诸如WAR之类的包中,也不会包含在运行时类路径中。

要快速试用,您可以使用

mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp

生成“玩具webapp”项目,为项目添加依赖项并将其设置为<scope>provided</scope>