尽量避免使用行话,以免我被误解。
这是场景,我的项目需要一个 jar 才能编译(比如说 x.jar)。我的项目一旦编译就被转换成一个 WAR 文件,该文件被部署在某个地方。
现在我希望 x.jar 只是为了编译我的项目,它不应该被打包(或一部分)在 WAR 文件中。
我怎样才能在 Maven 中做到这一点?我应该使用依赖范围作为“提供”
问问题
2706 次
1 回答
2
你是对的,正如Maven 常见问题中所述,使用范围是provided
,
如何防止在 WEB-INF/lib 中包含 JAR?我需要一个“仅编译”范围!提供了您应该为此使用的范围。这向 Maven 表明,依赖项将在运行时由其容器或 JDK 提供,例如。
具有此范围的依赖项不会被传递,也不会捆绑在诸如 WAR 之类的包中,或包含在运行时类路径中。
要快速试用,您可以使用
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp
要生成“toy webapp”项目,请将依赖项添加到您的项目并将其设置为<scope>provided</scope>
.
于 2013-10-21T16:20:19.557 回答