在实际项目中,我们通常使用这样的方式:首先,下载ODBC的Jar到本地;然后,通过Maven安装在本地库中。这样在项目中就可以使用ODBC的Jar包了,而大部分的jar是可以通过Maven中直接引用的。这是为什么呢?
项目报错
项目直接编译,报错如下
Failed to execute goal on project sql2o-oracle:
Could not resolve dependencies for project org.sql2o.extensions: sql2o-oracle:jar:1.6.0-RC4-SNAPSHOT:
Could not find artifact com.oracle.jdbc:ojdbc8:jar:12.2.0.1 in central (https://repo.maven.apache.org/maven2)
很明显项目中的引用:com.oracle.jdbc:ojdbc8:jar:12.2.0.1,无法在公共仓库中找到。
常用做法
一般的做法就是下载Jar包,然后存放在本地仓库中,这样就可以直接在项目中引用。但通常这样略显麻烦,也不具有通用性。之前这样做的原因主要是涉及到许可的原因,Oracle不开放ODBC的Jar不会开放到公共仓库中。
关于ODBC方面的讨论可以参考:Find Oracle JDBC driver in Maven repository .
目前实现
目前可以通过POM中的配置来直接使用Oracle仓库中的Jar,环境可以参考:6 Configuring the Oracle Maven Repository .
博主主要分为三步实现本地Oracle库的配置:
- 注册账号:https://www.oracle.com/webapps/maven/register/license.html 。如果已经注册过OTN(Oracle Technology Network)的账号,所以直接跳过;
- 配置本地Settings.xml
maven.oracle.com</id> [OTN username]</username> [OTN password]</password> ANY</host> ANY</port> OAM 11g</realm> </basicAuthScope> http.protocol.allow-circular-redirects</name> %b,true</value> </property> </params> </all> </httpConfiguration> </configuration> </server> - Maven中配置
maven.oracle.com</id> true</enabled> </releases> false</enabled> </snapshots> https://maven.oracle.com</url> default</layout> </repository> </repositories> maven.oracle.com</id> https://maven.oracle.com</url> </pluginRepository> </pluginRepositories>
疑问
- 虽然通过这种方式,可以直接获取相应的Jar。但实现需要知道Jar的相关信息,例如groupId、artifactId、version等。这些信息在哪里知道?
- 通过权限访问这种方式,略显复杂。如果是公司的本地库,可以配置统一的Jar管理,例如artifactory软件等。
参考
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!