很奇怪的就是本地的jar一直没有被引用到项目中,后面干脆使用了绝对路径的引用

        <dependency>
            <groupId>com.jun.cloud</groupId>
            <artifactId>jun-opentsdb-client</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>C:/Users/jun/respotory/com/jun/cloud/jun-opentsdb-client/1.0/jun-opentsdb-client-1.0.jar</systemPath>
        </dependency>

 

问题:

  maven 的<dependency>的scope属性可以为system,因为有些你依赖的jar包可能是没有maven坐标的,它完全不在maven体系中,这时候你可以把它下载到本地硬盘,然后通过system来引用

  不过不推荐使用system,因为一个项目的pom.xml如果使用了scope为system的depend后,会导致传递依赖中断,即所有其他依赖本项目的项目都无法传递依赖了。

  比如:假设A项目依赖了m.jar, n.jar, x.jar, 然后我们把A项目打包成了a.jar, 如果此时B项目依赖了A项目,则B项目通常自然就已经默认传递依赖了m.jar, n.jar, x.jar。但是如果A项目的pom.xml文件出现了scope为system的depend,则B项目就只能依赖a.jar, 将无法传递依赖m.jar, n.jar, x.jar

 

ps:

  只适合很奇怪的场景下,先测试使用

 posted on 2022-06-27 17:27  曹军  阅读(1396)  评论(0编辑  收藏  举报