我有一个包含大量模块和pom.xmls的大型Maven项目.而且项目已经改变了很多,我确信pom必须有一些不必要的依赖.有没有人知道是否有一个命令可以运行从pom中删除任何无意义的依赖项?
我有一个Maven Java项目.在编译项目时,我不希望通过一系列子依赖项偶然满足我的项目依赖项.在构建最终的战争时,当maven必须检查所有使用的依赖项并为战争添加必要的lib时,这是可以的,但是在编译代码时我想确保只使用直接依赖项.为什么?
假设我有两个依赖项:
<dependency>
<groupId>com.package</groupId>
<artifactId>module-1</artifactId>
</dependency>
<dependency>
<groupId>com.package</groupId>
<artifactId>module-2</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
对于我们的项目模块-1和模块-2提供完全不同的目的,但在模块-2的依赖树中的某处,使用模块-1.我删除了module-1依赖项,但是maven继续构建我的项目而没有编译错误,因为它解决了module-2子依赖项中的module-1.这种变化没有被注意到.
一段时间后我们决定删除module-2,因为我们不需要它.奇怪的是,我们不能再使用从模块1导入的编译类,并且没有连接到模块2逻辑.
这是一个简单的案例,但在大项目中,这可能会造成相当大的依赖性.