305

Oracle jdbc ドライバーを依存関係 (ランタイム スコープ) - ojdbc14 としてプロジェクトに追加したいと考えています。MVNrepository サイトでは、POM に入れる依存関係は次のとおりです。

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc14</artifactId>
    <version>10.2.0.3.0</version>
</dependency>

もちろん、これはmavenが使用する中央リポジトリにないため機能しません。2 つの質問:

  1. このアーティファクトを含むリポジトリ (存在する場合) を見つけるにはどうすればよいですか?

  2. Maven が使用できるように追加するにはどうすればよいですか?

4

21 に答える 21

425

このアーティファクトを含むリポジトリ (存在する場合) を見つけるにはどうすればよいですか?

残念ながら、バイナリ ライセンスのため、Oracle Driver JAR を含むパブリック リポジトリはありません。これは多くの依存関係で発生しますが、Maven のせいではありません。JAR を含む公開リポジトリを偶然見つけた場合、それは違法であると確信できます。

Maven が使用できるように追加するにはどうすればよいですか?

ライセンス上の理由で追加できない一部の JAR には、 Maven Central repoにpomエントリがあります。確認してみてください。ベンダーが推奨する Maven 情報が含まれています。

<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>

...そして、この場合は http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.htmlであるファイルをダウンロードするための URLです。

JAR をダウンロードしたら、それをコンピューターのリポジトリに追加します (POM から groupId、artifactId、およびバージョンを取得したことに注意してください)。

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 \
     -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar -DgeneratePom=true

POM を生成するための最後のパラメーターは、pom.xml の警告からあなたを救います

あなたのチームがローカルの Maven リポジトリを持っている場合、このガイドはそこに JAR をアップロードするのに役立つかもしれません。

于 2009-07-02T15:12:08.810 に答える
52

何らかの理由で、上記の解決策のいずれも機能させることができませんでした。(まだできません。)

代わりに、プロジェクト (blech) に jar を含め、jar へのパスを示す「システム」依存関係を作成しました。それはおそらく正しい方法ではありませんが、うまくいきます。また、チームの他の開発者 (またはビルド サーバーのセットアップ担当者) がローカル リポジトリに jar を配置する必要がなくなります。

更新: Hibernate Tools を実行すると、このソリューションが機能します。ただし、WAR ファイルのビルドには機能しないようです。ターゲット WAR ファイルに ojdbc6.jar ファイルは含まれません。

1) プロジェクトのルートに「lib」というディレクトリを作成します。

2) そこに ojdbc6.jar ファイルをコピーします (jar の名前に関係なく)。

3) 次のような依存関係を作成します。

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc</artifactId>
    <version>14</version>
    <scope>system</scope>
    <systemPath>${basedir}/lib/ojdbc6.jar</systemPath> <!-- must match file name -->
</dependency>

醜いですが、私にとってはうまくいきます。

war ファイルにファイルを含めるには、pom に以下を追加します。

<build>
    <finalName>MyAppName</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webResources>
                    <resource>
                        <directory>${basedir}/src/main/java</directory>
                        <targetPath>WEB-INF/classes</targetPath>
                        <includes>
                            <include>**/*.properties</include>
                            <include>**/*.xml</include>
                            <include>**/*.css</include>
                            <include>**/*.html</include>
                        </includes>
                    </resource>
                    <resource>
                        <directory>${basedir}/lib</directory>
                        <targetPath>WEB-INF/lib</targetPath>
                        <includes>
                            <include>**/*.jar</include>
                        </includes>
                    </resource>
                </webResources>
            </configuration>
        </plugin>

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>
于 2012-03-19T23:10:59.130 に答える
50

Oracle JDBC ドライバーは、(Central ではなく) Oracle Maven リポジトリで利用できるようになりました。

<dependency>
    <groupId>com.oracle.jdbc</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>12.1.0.2</version>
</dependency>

Oracle Maven リポジトリには、ユーザー登録が必要です。手順は次の場所にあります。

https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides

2019-10-03 更新

Spring Boot がMaven Centralの Oracle JDBC Driver を使用していることに気付きました。

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

Gradle ユーザーの場合は、次を使用します。

implementation 'com.oracle.ojdbc:ojdbc10:19.3.0.0'

ユーザー登録は必要ありません。

2020-03-02 更新

Oracle は現在、com.oracle.database グループ ID でドライバーを公開しています。詳細については、Anthony Accioly の回答を参照してください。ありがとうアンソニー。

JDK6、JDK7、およびJDK8と互換性のあるOr​​acle JDBCドライバー

<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc6</artifactId>
  <version>11.2.0.4</version>
</dependency>

JDK8、JDK9、およびJDK11と互換性のあるOr​​acle JDBCドライバー

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

JDK10 および JDK11 と互換性のある Oracle JDBC ドライバー

<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc10</artifactId>
  <version>19.3.0.0</version>
</dependency>
于 2016-02-16T15:09:28.007 に答える
30

jar をダウンロードしてプロジェクトに配置しますsrc/lib。これで、maven インストーラー プラグインを使用できるようになりました。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-install-plugin</artifactId>
    <version>2.3.1</version>
    <executions>
        <execution>
            <id>install-oracle-jdbc</id>
            <goals>
                <goal>install-file</goal>
            </goals>
            <phase>clean</phase>
            <configuration>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc6</artifactId>
                <version>11.2.0</version>
                <packaging>jar</packaging>
                <generatePom>true</generatePom>
                <createChecksum>true</createChecksum>
                <file>${project.basedir}/src/lib/ojdbc6.jar</file>
            </configuration>
        </execution>
    </executions>
</plugin>

一度実行するmvn cleanだけで、Oracle lib がローカルの Maven リポジトリにインストールされます。

于 2014-04-05T08:53:54.900 に答える
21

Oracle は現在 maven.oracle.com で Maven リポジトリを公開していますが、認証を受ける必要があります。

https://blogs.oracle.com/WebLogicServer/entry/weblogic_server_and_the_oracleを参照してください

ブログ投稿のコメントによると、ojdbc ドライバーは次の座標で利用できるはずです。

<groupId>com.oracle.weblogic</groupId>
 <artifactId>ojdbc7</artifactId>
 <version>12.1.3-0-0</version>
 <packaging>jar</packaging>
于 2015-01-14T12:50:43.147 に答える
16

試してみてください:

<repositories>
    <!-- Repository for ORACLE ojdbc6. -->
    <repository>
        <id>codelds</id>
        <url>https://code.lds.org/nexus/content/groups/main-repo</url>
    </repository>
</repositories>
<dependencies> 
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>
</dependencies> 
于 2015-01-04T04:42:56.843 に答える
12

Nexusを使用して、サードパーティの依存関係と標準の Maven リポジトリの依存関係を管理できます。

于 2011-12-31T20:35:27.657 に答える
5

これまでのところ、Maven リポジトリを使用することはできません。依存関係管理ツールとして ivy を使用していますが、maven2 の ibiblio リポジトリも使用しています。そして、これはアイビーで機能しています:

<dependency org="oracle" name="ojdbc14" rev="10.2.0.2" conf="*->default"/>

Maven2 の依存関係は次のようになります。

<dependency> 
    <groupId>oracle</groupId> 
    <artifactId>ojdbc14</artifactId> 
    <version>10.2.0.2</version> 
</dependency>

http://download.java.net/maven/2/http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/[organisation]/[module]/[を定義していることに注意してください。リビジョン]/[アーティファクト]-[リビジョン].[ext]アイビー設定の外部maven2リポジトリとして。

于 2011-06-23T07:43:09.430 に答える
2

皆さんに朗報です!最後に、Oracle の公式リポジトリを使用できます: https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides

于 2016-02-24T09:32:50.630 に答える
-1

Netbeans を使用している場合は、依存関係に移動し、アーティファクトを手動でインストールします。ダウンロードした .jar ファイルを見つけて完了です。クリーンビルドは問題を解決します。

于 2015-02-04T11:13:55.230 に答える
-1

jar を提供するリポジトリが 1 つあります。SBT で、" http://dist.codehaus.org/mule/dependencies/maven2 "の "oracle driver repo" のようなリゾルバーを追加します。

および依存関係: "oracle" % "ojdbc14" % "10.2.0.2"

Mavenでも同じことができます。pom.xml と jar が利用可能です ( http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/ )。

于 2013-09-05T20:48:10.567 に答える
-3

解決した

  • エラーを解決するには、次の設定を行ってください

このリポジトリは、Oracle 10.0.3.0 の依存関係を見つけるために有効にする必要があります (この設定は Buildconfig.groovy grails.project.dependency.resolver = "ivy" // または ivy で行う必要があります)

コンパイル時の Oracle ドライバーのダウンロードにも次の設定を使用します。

ランタイム「com.oracle:ojdbc:10.2.0.3.0」

これにより、grails アプリケーション用の Oracle ドライバーが見つからないという問題が解決するはずです。


于 2014-06-10T01:12:40.853 に答える