私は私のプロジェクトに依存関係(ランタイムスコープ)としてojdbc14としてOracle jdbcドライバを追加したいです。 MVNリポジトリサイトでは、POMに入れる依存関係は次のとおりです。
<dependency>
<groupId>com.Oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
もちろん、これはMavenが使用する中央リポジトリにはないため、機能しません。 2つの質問
このアーティファクトを含むリポジトリ(もしあれば)を見つけるにはどうすればよいですか?
Mavenが使用するように追加するにはどうすればよいですか?
このアーティファクトを含むリポジトリ(もしあれば)を見つけるにはどうすればいいですか?
残念ながら、バイナリライセンスのため、Oracle Driver JARを含むパブリックリポジトリはありません。これは多くの依存関係で起こりますが、Mavenのせいではありません。もしJARを含む公開リポジトリを見つけたとしても、それは違法であると確信できます。
Mavenが使用するように追加するにはどうすればよいですか?
ライセンス上の理由で追加できないJARの中には、 Maven Centralレポ に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をダウンロードしたら、次のようにしてJARを自分のコンピュータリポジトリに追加します(groupId、artifactId、およびversionをPOMから取得したことに注意してください)。
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をそこにアップロードするのに役立つかもしれません。
どういうわけか、私は上の解決策のどれも働かせることができませんでした。 (まだできません。)
私の代わりに私のプロジェクト(blech)にjarファイルを含めて、jarファイルへのパスを示す "システム"依存関係を作成することでした。それはおそらく正しい方法ではありませんが、うまくいきます。そして、チームの他の開発者(またはビルドサーバーを設定している人)がローカルのリポジトリにjarファイルを置く必要がなくなります。
UPDATE:この解決法は私が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>
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リポジトリにインストールされました。
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>
試してみてください。
<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>
Oracle JDBC Driverは、Oracle Mavenリポジトリ(Centralではなく)で使用可能になりました。
<dependency>
<groupId>com.Oracle.jdbc</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>
Oracle Mavenリポジトリにはユーザー登録が必要です。指示はにあります。
すべての Oracle Database JDBC Drivers は、 OTN使用許諾契約書 に基づいて配布されています。
OTN使用許諾契約書を読むと、この使用条件が見つかります。
できません:
...
- あなたの申請書を伴わない限り、プログラムを配布する。
...
だからこそ、あなたはどのMavenリポジトリでもドライバのjarファイルを見つけることができない、なぜならそれは単独で配布されるだろうから、そしてもしそれが起こったらそれはライセンス違反であろう。
依存関係を追加します。
<dependency>
<groupId>com.Oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
(またはそれ以降のバージョン)Mavenにojdbc14-10.2.0.3.0.pom
のみをダウンロードさせるようにしてください。
...
<licenses>
<license>
<name>Oracle Technology Network Development and Distribution License Terms</name>
<url>http://www.Oracle.com/technology/software/htdocs/distlic.html</url>
</license>
</licenses>
...
これはOTNライセンスについてお知らせします。
上記の依存関係を機能させるためには、実行することでjarをローカルのMavenリポジトリ(.m2
ディレクトリ)に手動でインストールすることを here に提案していた victor hugo に同意します。
mvn install:install-file -Dfile={Path_to_your_ojdbc.jar} -DgroupId=com.Oracle
-DartifactId=ojdbc -Dversion=10.2.0.3.0 -Dpackaging=jar
しかし、私は 上記のライセンス用語 を付け加えたいのですが、JDBC jarが見つからない場所だけに制限はありませんが、インストール場所も制限します。
実際、 ローカルのMavenリポジトリはプライベートで共有しないようにする必要があります。 共有した場合、ローカルエリアに少数の人が集まっていてもjarは単独で配布される一種の配布になります。これは、OTNライセンス契約違反を表します。
さらに、あなたは JDBCリポジトリをあなたの会社のリポジトリマネージャにインストールすることを避けるべきです ( Artifactory や Nexus のように)あなたの組織内の人々にだけであっても、単独で、そしてこれはOTN使用許諾契約違反を表します。
あなたは Nexus を使ってサードパーティの依存関係と標準のmavenリポジトリの依存関係を管理することができます。
今までは、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/を定義していることに注意してください。ミラー/ maven /ラバ/依存関係/ maven2/[組織]/[モジュール]/[リビジョン]/[アーティファクト] - [リビジョン] - [ext] 私のivy設定の外部maven2レポジトリとして。
皆さん、良い知らせを!最後に、オラクルの公式リポジトリを使用することができます。 https://blogs.Oracle.com/dev2dev/get-Oracle-jdbc-drivers-and-ucp-from-Oracle-maven-repository-without-ides /
一部のOracle製品では、mavenアーティファクトのローカルリポジトリへの公開をサポートしています。これらの成果物を見つける場所とそれらを保管する場所の説明を含むプラグイン/ mavenディレクトリーが製品にあります。実際にアップロードを行うOracleのプラグインがあります。
参照してください。 http://docs.Oracle.com/middleware/1212/core/MAVEN/config_maven.htm
この方法でOJDBCを出荷する可能性のある製品の1つはWLSですが、非常に奇妙な座標を使用しています。
<groupId>com.Oracle.weblogic</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.2-0-0</version>
私はLGPLv2の下でオープンソースを出荷しました、そしてオラクルとのいくつかの電子メール会話の後でさえ、彼らが私のディストリビューションと一緒に彼らのバイナリJDBCドライバを出荷することが許されたかどうかはっきりしませんでした。私の運転免許証が彼らのOTN条項と互換性があるかどうかに関係する問題は彼らが私が運転手を出荷することを許されなかったことを彼らが示唆した。おそらくこの部分に関連している
(b)お客様が開発したアプリケーションとともにプログラムをお客様に配布すること。ただし、かかる各ライセンシーは、本契約の条項に一致するライセンス条項に同意するものとします。
ですから、あなたがそのドライバをあなたの排他的/ローカルのmavenリポジトリに合法的に公開することができたとしても、そのアーティファクトに対して何をすることが許可されているかには依然として制限があります。完全なOTNライセンスファイルと一緒にドライバをバイナリ形式で出荷したとしても、それを使用することはできず、ユーザーが手動でOracleドライバをダウンロードして自分のライブラリパスにドロップしてソフトウェアを使用する必要があります。
依存のために
<dependency>
<groupId>com.Oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>
やってみる
<repository>
<id>mvnrepository</id>
<url>http://nexus.saas.hand-china.com/content/repositories/rdc</url>
</repository>
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/ ).
Netbeansを使用している場合は、依存関係に移動して手動で成果物をインストールします。あなたのダウンロードした.jarファイルを見つけてください。クリーンビルドは問題を解決します。