从密码保护的存储库下载工件 - 将oracle jdbc驱动程序作为托管依赖项

时间:2017-05-13 07:30:25

标签: oracle maven sbt

我想通过SBT下载oracle数据库驱动程序。如此处所述https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides,它们受密码保护。在SBT手册(http://www.scala-sbt.org/0.13/docs/Publishing.html)中,提到可以为解析器指定凭证。应用时如:

resolvers += "oracle" at "https://maven.oracle.com"
credentials += Credentials("oracle download", "maven.oracle.com", "myEmail@gmail.com", "password")

libraryDependencies ++= Seq(
  "com.oracle.jdbc" % "ojdbc8" % "12.2.0.1"
)

我还是得到了

[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.oracle.jdbc#ojdbc8;12.2.0.1: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::

配置中缺少什么?

修改

将凭据更改为

credentials += Credentials("maven.oracle.com", "maven.oracle.com", "E-Mail", "password")

结果是

[error] Unable to find credentials for [OAM 11g @ login.oracle.com].
[warn]  module not found: com.oracle.jdbc#ojdbc8;11.2.0.4
[warn] ==== local: tried
[warn]   /Users/geoheil/.ivy2/local/com.oracle.jdbc/ojdbc8/11.2.0.4/ivys/ivy.xml
[warn] ==== oracle: tried
[warn]   https://maven.oracle.com/com/oracle/jdbc/ojdbc8/11.2.0.4/ojdbc8-11.2.0.4.pom
[info] Resolving org.apache#apache;14 ...
[error] Unable to find credentials for [OAM 11g @ login.oracle.com].
[info] Resolving jline#jline;2.12.1 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.oracle.jdbc#ojdbc8;11.2.0.4: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::

如何找到正确的oracle领域?

Unable to find credentials for [OAM 11g @ login.oracle.com]

会建议OAM 11g是领域,但这仍然会导致同样的问题。此外,https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides建议OAM 11g不起作用。

对于gradle,似乎有一种解决方法:https://groups.google.com/forum/#!topic/gradle-dev/G8X_41lOIlU

maven {        
        url 'https://www.oracle.com/content/secure/maven/content'
        credentials {
            username 'user'
            password 'password'
        }

但到目前为止,我无法通过SST获得任何选项(通过SSO的正确领域,解决方法)。

EDIT2

到目前为止,最佳解决方法是Find Oracle JDBC driver in Maven repository

EDIT3

在此处找到可重现的示例: https://github.com/geoHeil/oracleJBCMavenSBT

2 个答案:

答案 0 :(得分:1)

1)我在github

结帐您的项目

2)我运行此命令以查找我的Maven安装路径:

mvn -version

3)我使用您的设置编辑.... \ apache-maven-3.5.0 \ conf \ settings.xml文件

4)我运行此命令:

mvn clean install

5)我有同样的错误

6)我在Oracle official Web site

上验证了我的帐户

7)我使用有效的登录名/密码编辑.... \ apache-maven-3.5.0 \ conf \ settings.xml文件

8)我运行此命令,我有一个 Maven BUILD SUCCESS

mvn clean install

您需要有效的Oracle帐户才能解决问题。

注意:

如果您使用travic-ci,请运行以下命令:

mvn clean install --settings settings.xml

在settings.xml文件中:

<server>
  <id>maven.oracle.com</id>
  <username>${OTN_USERNAME}</username>
  <password>${OTN_PASSWORD}</password>
  <configuration>
    <basicAuthScope>
      <host>ANY</host>
      <port>ANY</port>
      <realm>OAM 11g</realm>
    </basicAuthScope>
    <httpConfiguration>
      <all>
        <params>
          <property>
            <name>http.protocol.allow-circular-redirects</name>
            <value>%b,true</value>
          </property>
        </params>
      </all>
    </httpConfiguration>
  </configuration>
</server> 

在travic-ci中,添加2个环境变量(https://travis-ci.org/YOUTORGANIZATION/YOURREPOSITORY/settings):

enter image description here

答案 1 :(得分:0)

...
resolvers += "OAM 11g" at "https://maven.oracle.com",
credentials += Credentials("OAM 11g", "login.oracle.com", "mail", "pass"),
libraryDependencies += "com.oracle.jdbc" % "ojdbc8" % "18.3.0.0" exclude("com.oracle.jdbc", "ucp"),
...

有效。