我有简单的Maven项目结构:
mainProject
|-- subProject1
| |-- subSubProject
|-- subProject2
关键是我有mainProject,它包含每个子项目中使用的依赖项(这些依赖项对于每个子项目都是通用的),但我不希望它们在结束时包含在我的WAR文件中#&# 39;编译和建造(范围提供)。另外,我不想在每个子项目中声明依赖项,因为我已经在mainProject中声明了它们。
WAR文件包含其内置文件中的所有子项目库。
由于
答案 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文件。