什么时候scalac需要传递依赖?

时间:2011-10-13 15:27:11

标签: scala

我对来自很多我的deps的commons-logging有一个传递依赖,并且出于某种原因我明确地控制了版本,并且在它将它设置为运行时因为我不在任何地方使用它:< / p>

     <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
        <scope>runtime</scope>
    </dependency>

然而,有了这个,我的Scala编译失败了:

[INFO] --- maven-scala-plugin:2.15.2:compile (default) @ dfkka ---
[INFO] Checking for multiple versions of scala
[INFO] includes = [**/*.scala,**/*.java,]
[INFO] excludes = []
[INFO] /Users/viktor/dev/projects/dfkka/src/main/scala:-1: info: compiling
[INFO] /Users/viktor/dev/projects/dfkka/target/generated-sources/scalaxb:-1: info: compiling
[INFO] Compiling 72 source files to /Users/viktor/dev/projects/dfkka/target/classes at 1318518178794
[ERROR] error: error while loading AbstractLayoutManager, Missing dependency 'class org.apache.commons.logging.Log', required by /Users/viktor/.m2/repository/ar/com/fdvs/DynamicJasper/3.1.9/DynamicJasper-3.1.9.jar(ar/com/fdvs/dj/core/layout/AbstractLayoutManager.class)
[ERROR] one error found

如果我将其改回

<dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>

编译成功。 scalac什么时候需要这些传递性的deps? scala-ide中的表示编译器似乎有效......

所以DynamicJasper中的AbstractLayoutManager需要它,但我甚至不在我的代码中的任何地方引用该类。为什么说“加载”?它真的加载了这个类吗?我真的很想理解这个...

0 个答案:

没有答案