Maven中ojdbc jar的问题

6

我已经用Java 8开发了一个项目,并在使用Java 8开发该项目时在Maven中安装了ojdbc jar。现在我正在将项目转换为Java 7。在这样做时,我遇到了在pom.xml中的ojdbc.jar依赖项的问题。它显示:

缺少com.oracle:ojdbc7:jar:12.1.0

在oracle依赖标签中。当我尝试运行ojdbc jar的mvn install时,也会出现错误。

[ERROR] Failed to execute goal on project SlotBookingAvailability: Could not resolve dependencies for project org.logicInfo.oms:SlotBookingAvailability:war:0.0. 1-SNAPSHOT: Failure to find com.oracle:ojdbc7:jar:12.1.0 in https://repo.maven.a pache.org/maven2 was cached in the local repository, resolution will not be reat tempted until the update interval of central has elapsed or updates are forced.

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.logicInfo.oms</groupId>
<artifactId>SlotBookingAvailability</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<name>SlotBookingAvailability</name>
<description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>


<properties>
    <start-class>org.logicInfo.oms.SlotBookingAvailability.SlotBookingAvailabilityApplication</start-class>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.7</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc7</artifactId>
        <version>12.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.json/json -->
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20180813</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

</project>

有人能帮我解决这个问题吗?

3个回答

10

我同意karol Dowbecki的答案。

以下是更详细的安装步骤:

Oracle官网下载jar文件。

将ojdbc7.jar添加到本地Maven仓库中。

打开cmd窗口。

运行命令:mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0 -Dpackaging=jar -Dfile=G:/Jar/ojdbc7.jar

请根据自己的情况修改jar文件名称、位置和版本号。

然后你就可以在本地Maven仓库中找到这个jar文件,例如:${mavenrepository}/com/oracle/ojdbc7/${yourversion}/

whdeMacBook-Pro:Downloads wh$ mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.2 -Dpackaging=jar -Dfile=ojdbc7.jar 
[INFO] Scanning for projects...
[INFO] 
[INFO] ----------------------< com.newSpark:SparkLearn >-----------------------
[INFO] Building SparkLearn 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ SparkLearn ---
[INFO] Installing /Users/wh/Downloads/ojdbc7.jar to /server/mavenrepository/com/oracle/ojdbc7/12.1.0.2/ojdbc7-12.1.0.2.jar
[INFO] Installing /var/folders/fc/23q8bt313pgbrxktr9f03ms80000gn/T/mvninstall7641723653608629745.pom to /server/mavenrepository/com/oracle/ojdbc7/12.1.0.2/ojdbc7-12.1.0.2.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.564 s
[INFO] Finished at: 2018-11-04T14:33:34+08:00
[INFO] -----------------------------------

然后,您可以在maven的pom.xml文件中使用您的设置。

当我尝试运行上述命令以安装软件包时,它会抛出以下异常:"[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file (default-cli) on project SlotBookingAvailability: Execution default-cli of goal org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file failed: ar:1.6: Failed to read artifact descriptor for commons-codec:commons-codec:jar:1.6: Could not transfer artifact org.apache.commons:commons-parent:pom:22 from/to https://repo.maven.apache.org/maven2:Received fatal alert: protocol_version"。 - Charan
得知这是由于Java 7的TLSv1.2问题,因此尝试启用TLSv1.2。由于缺少ojdbc.jar而导致异常,"[ERROR] Failed to execute goal on project SlotBookingAvailability: Could not resolve dependencies for project org.logicInfo.oms:SlotBookingAvailability:war:0.0.1-SNAPSHOT: Failure to find com.oracle:ojdbc7:jar:12.1.0 in https://repo.maven.apache.org/maven2已被缓存在本地存储库中,解析将不会再次尝试,直到中央更新间隔已过或强制更新。" - Charan
无法在repo.maven.apache.org/maven2中找到com.oracle:ojdbc7:jar:12.1.0,你的jar文件可能存在问题,或者你没有正确地将其安装到maven仓库中。 - HbnKing

8
Oracle JDBC驱动程序(ojdbc6.jarojdbc7.jarojdbc8.jar)由于Oracle许可证的原因未发布到Maven Central存储库中。如果以前可以使用它,则必须已在本地安装它(例如通过运行mvn install:install-file)或使用了一个不同于Maven Central的存储库,该存储库具有它。

您需要从Oracle网站手动下载ojdbc7并同意OTN许可协议。理想情况下,您应该下载与您的Oracle数据库服务器版本匹配的ojdbc7 JAR文件(SELECT * FROM v$version)。


我在Oracle网站手动下载了ojdbc7.jar,并在使用Java 8开发应用程序时添加了它。如果我将应用程序转换为Java 7,是否需要重新安装? - Charan
@Charan 这将取决于您如何设置它。如果您使用 mvn install:install-file 在本地安装它,则所有本地 Maven 项目都可以使用它。 - Karol Dowbecki
你能给出确切的命令来安装本地jar包吗?假设我的jar包在C:\Users\pboobalan\Downloads\ojdbc目录下。 - Charan

0
请从OTN下载Oracle JDBC驱动程序,或者您可以从Oracle Maven库(maven.oracle.com)下载它们。有关从Oracle Maven下载的说明,请参阅blog

我尝试使用mvn install:install-file命令将jar包添加到Maven中,但是出现了异常。命令如下:-Dfile=C:\Users\pboobalan\Downloads\ojdbc\ojdbc7.jar -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0 -Dpackaging=jar。 - Charan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接