maven项目中是否有可能在dependecies中指定哪个java包适用于哪个?如果可能的话怎么样?
示例:我有两个包:
ProjectName.xcworkspace
依赖关系是:
1) org.test.compute
2) org.test.stock
我的目标是:
aws-java-sdk应用于org.test.compute
和org.cloudfoundry到org.test.stock
答案 0 :(得分:2)
您可以通过在maven中使用多模块项目来实现此目的。
https://maven.apache.org/guides/mini/guide-multiple-modules.html
答案 1 :(得分:2)
不,你不能。 Java应用程序的所有包都包含在同一个运行时类路径中,因此所有包中都可以看到类路径上的所有依赖项。
答案 2 :(得分:1)
如果只是因为两个依赖项中有两个具有相同名称的类,我建议您在使用以下类时使用完全限定名称:
org.cloudfoundry.pathA.classA
com.amazonaws.pathB.classA
此外,如果依赖项仅用于测试类,则需要使用如下测试范围:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.9.35</version>
<scope>test</scope>
</dependency>
通过这样做,仅在编译和运行测试时使用依赖性。它不会包含在最终的WAR或EAR文件中。