为什么有些jar文件无法生成?

时间:2019-10-13 20:16:57

标签: java maven

<dependency>
    <groupId>oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>
</dependency>

此依赖项无法下载。我在做什么?

3 个答案:

答案 0 :(得分:2)

another question中已对此进行了介绍,但是有新信息。

Oracle Maven存储库

从2016年开始,Oracle开始将其驱动程序发布到安全的Oracle Maven存储库中,并且他们在their site上发布了有关如何使用该存储库的说明。该过程如下所示:

  1. Register(如果需要)。
  2. 根据需要创建用于加密的Maven主密码。
    mvn -emp [YOUR MASTER PASSWORD]
    
  3. 将Oracle服务器添加到您的Maven settings.xml(〜/ .m2 / settings.xml)。
    <servers>
      <server>
        <id>maven.oracle.com </id>
        <username>YOUR ORACLE USERNAME</username>
        <password>YOUR ORACLE 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>
    </servers>
    
  4. 使用Maven加密Oracle密码:
    mvn -ep [YOUR ORACLE PASSWORD]
    
  5. 将存储库添加到您的Maven POM或settings.xml:
    <repositories>
      <repository>
        <id>maven.oracle.com</id>
        <name>oracle-maven-repo</name>
        <url>https://maven.oracle.com</url>
        <layout>default</layout>
        <releases>
          <enabled>true</enabled>
          <updatePolicy>always</updatePolicy>
        </releases>
      </repository>
    </repositories>
    <pluginRepositories>
      <pluginRepository>
        <id>maven.oracle.com</id>
        <name>oracle-maven-repo</name> 
        <url>https://maven.oracle.com</url>
        <layout>default</layout>
        <releases>
          <enabled>true</enabled>
          <updatePolicy>always</updatePolicy>
        </releases>
      </pluginRepository>
    </pluginRepositories>
    

执行完此操作后,Maven将能够解决依赖关系。

Maven Central

从2019年9月开始,Oracle已启动posting its jars to Maven Central。如果可以使用这些版本,则只需更新依赖项即可:

<dependency>
  <groupId>com.oracle.ojdbc</groupId>
  <artifactId>ojdbc8</artifactId>
  <version>19.3.0.0</version>
</dependency>

答案 1 :(得分:0)

this blog post的作者说,无法使用maven安装Oracle驱动程序:

  

由于Oracle许可证限制,公共Maven存储库中不提供Oracle JDBC驱动程序。要将Oracle JDBC驱动程序与Maven一起使用,必须手动将其下载并安装到Maven本地存储库中。

您必须手动下载正确的驱动程序,然后可以采用以下两种可能的路径之一:

  1. 在本地Maven存储库中安装驱动程序
  2. 定义依赖项,指示jar文件的路径

以下是这两种情况的一些示例:

本地Maven存储库

  • 下载驱动程序jar并将其解压缩到文件系统中,
  • 然后执行以下命令
mvn install:install-file -Dfile=path/to/your/ojdbc6.jar -DgroupId=com.oracle 
    -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar
  • 最后调整您的依赖性,请注意,我使用了另一个groupId
<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>
</dependency>

指示jar文件的位置

这非常简单明了,只需将jar文件放在某个文件夹中并在依赖项中指出路径,您甚至可以使用任何项目路径,但是您必须小心有关驱动程序的法律问题许可或分配规则;所以我建议您使用第一个选项。

<dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc6</artifactId>
  <version>6</version>
  <scope>system</scope>
  <systemPath>${project.basedir}/lib/ojdbc6.jar</systemPath>
</dependency>

由于需要在每台开发机中重复此过程,因此值得一提的是,您应该留下某种形式的文档,以表明需要此驱动程序以及安装它的必要步骤。

致谢

答案 2 :(得分:0)

是的,Oracle JDBC驱动程序将在中央Maven上可用。当前提供19.3版,其他版本即将推出。有关更多详细信息,请参阅此blog。另外,请检出Maven repo以浏览可用的jar。