我想添加oracle jdbc驱动程序到我的项目作为依赖(运行时范围)- ojdbc14。
在MVNrepository站点中,要放在POM中的依赖项是:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
当然,这是行不通的,因为它不在maven使用的中央存储库中。
两个问题:
我如何找到包含此工件的存储库(如果有的话)?
如何添加它以便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>
注意,我在ivy设置中定义了http://download.java.net/maven/2/和http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]作为maven2的外部回购。
我如何找到包含此工件的存储库(如果有的话)?
不幸的是,由于二进制许可证,Oracle驱动JAR没有公共存储库。这发生在许多依赖关系中,但不是Maven的错。如果您碰巧发现一个包含JAR的公共存储库,您可以确定它是非法的。
如何添加它以便Maven使用它?
由于许可证原因而不能添加的一些jar在Maven Central回购中有一个pom条目。检查一下,它包含了供应商首选的Maven信息:
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
...以及下载文件的URL,在这种情况下就是
http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html。
一旦你下载了JAR,只需将它添加到你的计算机存储库(注意我从POM中提取了groupId, artifactId和version):
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。
无论出于何种原因,我都无法让上述任何解决方案发挥作用。(仍然不能)。
相反,我所做的是将jar包含在我的项目中(blech),然后为它创建一个“系统”依赖项,指示jar的路径。这可能不是正确的方法,但确实有效。并且它消除了团队中的其他开发人员(或设置构建服务器的人员)将jar放在本地存储库中的需要。
更新:当我运行Hibernate工具时,此解决方案适用于我。但是,它似乎不能用于构建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>