我最近了解到gradle has api
/implementation
"scopes" for dependencies,并且试图弄清楚gradle中是否有与implementation
相当的专家。没有Maven依赖范围似乎完全适合此-provided
使其不是运行时依赖项,compile
/ runtime
似乎没有做正确的事,...因此似乎没有直接的对等物。
基本上,我对库的依赖在编译时(对于我的库)/运行时(对于使用我的库的代码)是必需的,但是我不想在 compile < / em>取决于我的库的代码的类路径。这可能与Maven有关吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
AFAIK这是不可能的。
如果要避免在代码中无意使用传递依赖关系,可以使用dependency:analyse
或dependency:analyze-only
。
如果您直接使用传递依赖中的类,则后一种会使您失败。
答案 2 :(得分:0)
您能否更具体一点,并举例说明架构(模块,子模块)?
如果我具有以下模块:
现在,我希望x出现在类路径中并在A构建期间进行编译,但我不希望x出现在B类路径中
好吧,因为x是传递依赖项,所以会在B中得到x,但是您可以轻松地将其排除(将依赖项A声明为B时),因此它不会在类路径中。
<dependencies>
<dependency>
<groupId>test.test</groupId>
<artifactId>B</artifactId>
<version>1.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>test.test</groupId>
<artifactId>x</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
有关更多信息:https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html