项目中传递达梦JdbcDriver的依赖

场景
Sass项目最近要适配达梦数据库,因此在common包中引入了达梦数据库的jdbc依赖,

这个依赖必须在官网中下载,然后copy到本地代码文件夹中,maven引入时使用 下面这种方式来做


    com.dameng
    DmJdbcDriver18
    8.1.3.62
    system
    ${project.basedir}/jar/DmJdbcDriver18.jar

1
2
3
4
5
6
7
这种方式有一个问题,就是这个项目打包后,这个项目的jar被引入到其他的项目时,这个system类型的jar并不会被带过去,

使用网上的一些教程,例如将达梦下的类编译时拷贝到common的classes下,但是总是会有一些问题,这里可能是我对maven这块不太熟悉,所以没有找到更好的办法。

解决方式
因为我们的common包,每个人都可以检出到本地编译打包,所以这里就有一个可发挥的空间。

我在common打包时,添加一个生命周期,提前将common中的达梦jar install到本地即可,然后common中引入达梦的jdbc使用正常的方式引入,如下两个代码示例


       
           
                org.apache.maven.plugins
                maven-install-plugin
               
                   
                        install-system-dependency
                        validate
                       
                            install-file
                       

                       
                            ${project.basedir}/jar/DmJdbcDriver18.jar
                            com.dameng
                            DmJdbcDriver18
                            8.1.3.62
                            jar
                       

                   

               

           

       

   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
       
            com.dameng
            DmJdbcDriver18
            8.1.3.62
       

1
2
3
4
5
如此,便可正常使用了,因为我们本地有了这个jar,所以common在其他项目中引入时,便可以带着它的pom告诉其他项目在本地仓库中寻找达梦的jdbc jar包了,

不过这种方式的无法做到的就是,如果这个common包是每个人自己拿不到的,而是直接放在私服上,让开发人员引入的,这里就会有问题,但是既然都有私服了,那么直接将达梦的jar直接上传到私服不就可以了?

除非私服都没有,直接把common jar打成一个jar 发送给别人使用,那么对方可能没法引入达梦的jar,这时候要么让对方自己本地自行引入,要么考虑将达梦jar中的classes一起放入你打的jar中,如果有其他更好的方式,也可留言告知。
 

你可能感兴趣的:(依赖本地包传递)