指定包的maven依赖项

时间:2016-01-08 13:12:44

标签: java maven

maven项目中是否有可能在dependecies中指定哪个java包适用于哪个?如果可能的话怎么样?

示例:我有两个包:

ProjectName.xcworkspace

依赖关系是:

1) org.test.compute
2) org.test.stock

我的目标是:

aws-java-sdk应用于org.test.compute

和org.cloudfoundry到org.test.stock

3 个答案:

答案 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文件中。