使用mvn dependency:anapyze分析依赖,只会分析编译主代码和测试代码需要用到的依赖,一些执行测试和运行时需要的依赖就发现不了。
<exclude>junit:junit</exclude> <exclude>org.testng:testng</exclude> <exclude>com.google.collections:google-collections</exclude> <exclude>commons-logging:commons-logging</exclude> </excludes> <includes> <include>junit:junit:4.8.2:jar:test</include> <include>cglib:cglib-nodep:jar:2.2</include>...
clean 和 pakage 是构建阶段,dependency:copy-dependencies 是目标 mvn clean dependency:copy-dependencies package 这里的 clean 阶段将会被首先执行,然后 dependency:copy-dependencies 目标会被执行,最终 package 阶段被执行。 Clean 生命周期 当我们执行 mvn post-clean 命令时,Maven 调用 clean 生命周期,它包含以下...
<groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.15</version> </dependency> 假引入一个三方依赖,该依赖使用1.2.75版本的fastjson <!-- 将引入依赖 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.75</version> </de...
maven会自动递归的帮你include所有dependency, 以及dependency的子dependency...一直这么递归下去。因此当你在A 的pom.xml里面include B, 那个B的dependency (C,D E)会自动include,不必再显示引入。 可一旦你在A的pom.xml exclude B,那么B的dependency (C,D E)也就不存在了。这时候你通过步骤2,把B的module作为...
When I build B as a war, Maven exports A and it's dependency. How to tell maven not to include this dependency tree alone while exporting? I cannot find excludes tag in maven war configuration. Note: I cannot use provided scope in the dependency because I need it to test using ...
</dependency> 啊哈,这样C就不会打进最终的war包啦,也就间接起到了“全局排除”的目的。但是这样会给人造成迷惑,会什么是2.0,其实这个版本号已经没有任何含义了。但是问题还是在的,虽然声明了provided,但是编译时,这个jar依然还会出现在classpath下的,那代码依然开始可以引用的。那就再进一步,弄一个C的空壳,里边...
如果点击Exclude,则会将这个依赖排除。 以上图为例,当点击Exclude后,当前pom的变化如下: 排除前: <dependency><groupId>com.shizhuang-inc</groupId><artifactId>instrument-core</artifactId></dependency> 排除后: <dependency><groupId>com.shizhuang-inc</groupId><artifactId>instrument-core</artifactId><ex...
</exclude> </excludes> </dependency> </dependencies> 除了手动通过excludes标签排除依赖,被引模块也可以在导入依赖时通过optional标签禁用依赖传递。 上述示例中若在demo-a工程中引入dependency-b依赖时添加optional标签,那么其它工程在引入demo-a依赖时将不会将dependency-b作为间接依赖导入。
<dependency><groupId>sample.ProjectD</groupId><artifactId>ProjectD</artifactId><version>1.0-SNAPSHOT</version><optional>true</optional></dependency> HOWEVER, they didn't. As a last resort, you still have the option to exclude it on your side, in Project-A, like this: ...