sbt从受密码保护的存储库下载工件-oracle jdbc驱动程序作为托管依赖项
我想通过SBT下载oracle数据库驱动程序。如本文所述,它们受密码保护。在SBT手册()中提到,可以为解析器指定凭据。在应用时,如:sbt从受密码保护的存储库下载工件-oracle jdbc驱动程序作为托管依赖项,oracle,maven,sbt,Oracle,Maven,Sbt,我想通过SBT下载oracle数据库驱动程序。如本文所述,它们受密码保护。在SBT手册()中提到,可以为解析器指定凭据。在应用时,如: resolvers += "oracle" at "https://maven.oracle.com" credentials += Credentials("oracle download", "maven.oracle.com", "myEmail@gmail.com", "password") libraryDependencies ++= Seq(
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是一个领域,但这仍然会导致同样的问题。此外,建议的OAM 11g
也不起作用
对于gradle来说,似乎有一个解决办法:
但到目前为止,我还没有任何选择(通过SSO的正确领域,解决方案)来使用SBT
编辑2
迄今为止最好的解决办法是
编辑3
在此处找到一个可复制的示例:
1)我在上签出您的项目
2)我运行此命令查找Maven安装的路径:
mvn -version
3)我使用您的设置编辑..\apache-maven-3.5.0\conf\settings.xml文件
4)我运行以下命令:
mvn clean install
mvn clean install --settings settings.xml
5)我也有同样的错误
6)我在
7)我使用有效的登录名/密码编辑..\apache-maven-3.5.0\conf\settings.xml文件
8)我运行了这个命令,并且获得了Maven构建成功:
mvn clean install
您需要有效的Oracle帐户来解决问题。
注:
如果使用travic ci,请运行以下命令:
mvn clean install
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>
maven.oracle.com
${OTN_USERNAME}
${OTN_密码}
任何
任何
OAM 11g
):
它是有效的。依赖外部的、公共的、Maven存储库(您的第二次编辑)存在一个问题,即它们公开提供Oracle JDBC驱动程序违反了许可证,并且可能需要随时通过删除通知将其删除。我们使用私有的Nexus回购来解决这个问题,我们使用它来处理我们自己和其他人的受许可证限制的工件。这是一种提供Oracle JDBC驱动程序的完全合法的方式。你是说edit2?是的,但我指的是mvn安装:安装文件-DgroupId=com.oracle-DartifactId=ojdbc14 \-Dversion=10.2.0.3.0-dpackage=jar-Dfile=ojdbc.jar-DgeneratePom=true
,它不会违反许可证。不过,我还是希望SBT可以直接从oracle获取JAR。不幸的是,我认为您看到的错误非常明显,而且SBT不是您的朋友-具体来说,身份验证主机是login.oracle.com
,而您的下载解析程序是maven.oracle.com
。当我将凭据更改为credentials+=credentials(“OAM 11g”、“login.oracle.com”、“E-Mail”、“password”)
时,我知道不再会收到无效的登录错误,但工件仍然未解决。credentials+=credentials(“WebLogic Server”、“login.oracle.com”、“email”、“password”)
将导致未找到模块:com.oracle.jdbc#ojdbc8;11.2.0.4
,因此不再出现无法登录错误…不幸的是,我使用新创建的帐户再次面临问题。以前在settings.xml
文件中提供的虚拟帐户实际上允许我登录到oracle网站-因此应该没问题。此外,我始终可以看到哪个帐户会将我重定向到a)登录,然后b)重新接受许可证。这里有一个示例项目:当运行正常时,oracle会解决他们的帐户(登录/密码)问题: