传播为依赖项目提供的依赖项

时间:2013-07-29 14:27:14

标签: java maven

我有简单的Maven项目结构:

mainProject
|-- subProject1
|   |-- subSubProject
|-- subProject2

关键是我有mainProject,它包含每个子项目中使用的依赖项(这些依赖项对于每个子项目都是通用的),但我不希望它们在结束时包含在我的WAR文件中#&# 39;编译和建造(范围提供)。另外,我不想在每个子项目中声明依赖项,因为我已经在mainProject中声明了它们。

WAR文件包含其内置文件中的所有子项目库。

由于

2 个答案:

答案 0 :(得分:1)

在我看来,这个问题可以有两个解决方案。

1。)您可以将范围更改为编译,在构建war文件时,您可以使用maven-war-plugin这样排除war文件中不需要的所有jar文件。

<build>
<plugins>
  <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
      <packagingExcludes>WEB-INF/lib/xyz.jar</packagingExcludes>
    </configuration>
  </plugin>
</plugins>

2.)如果它们是第三方特定的jar,那么你可以将它们移动到服务器lib目录,在运行时你的web容器将提供所需的类。

答案 1 :(得分:0)

我对Maven没有太多的经验,但我记得在我曾经使用的文件poms中列出父母poms。您似乎希望将主项目pom包含为父pom,然后在各自的pom中添加子项目特定的依赖项。我认为父pom中提供的scope =仍然会使公共依赖关系不再是war文件。