rpe*_*rez 282 java maven-2 jdbc maven mvn-repo
我想将oracle jdbc驱动程序添加到我的项目中作为依赖项(运行时作用域) - ojdbc14.在MVNrepository站点中,放入POM的依赖关系是:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
当然这不起作用,因为它不在maven使用的中央存储库中.2个问题:
如何找到包含此工件的存储库(如果有)?
如何添加它以便Maven将使用它?
vic*_*ugo 406
如何找到包含此工件的存储库(如果有)?
不幸的是,由于二进制许可证,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>
Run Code Online (Sandbox Code Playgroud)
...以及下载文件的URL,在本例中为 http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html.
下载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
Run Code Online (Sandbox Code Playgroud)
生成POM的最后一个参数将使您免于pom.xml警告
如果您的团队有一个本地Maven存储库,那么本指南可能有助于在那里上传JAR.
Mar*_*rvo 51
无论出于何种原因,我无法获得上述任何解决方案.(仍然不能.)
我所做的是将jar包含在我的项目中(blech),然后为它创建一个"系统"依赖项,指示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>
Run Code Online (Sandbox Code Playgroud)
丑陋,但对我有用.
要将文件包含在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>
Run Code Online (Sandbox Code Playgroud)
小智 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>
Run Code Online (Sandbox Code Playgroud)
现在您只需要执行mvn clean一次,并在您的本地maven存储库中安装oracle lib.
Seb*_*ien 22
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>
Run Code Online (Sandbox Code Playgroud)
Bie*_*vid 22
Oracle JDBC驱动程序现在可在Oracle Maven存储库(不在中央)中使用.
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
Oracle Maven Repository需要用户注册.说明可在以下位置找到:
sea*_*g9x 17
试试:
<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>
Run Code Online (Sandbox Code Playgroud)
tar*_*ini 14
所有Oracle数据库JDBC驱动程序均根据OTN许可协议进行分发.
如果您阅读OTN许可协议,您会发现此许可条款:
您可能不会:
......
- 除非附有您的申请,否则分发程序;
...
这就是为什么你不能在任何公共Maven资源库中找到驱动程序的jar,因为它将单独分发,如果它发生了,那将是一个许可证违规.
添加依赖项:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
(或任何更高版本)使Maven下载ojdbc14-10.2.0.3.0.pom唯一,在那个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>
...
Run Code Online (Sandbox Code Playgroud)
通知您有关OTN许可证的信息.
为了使上述作品依赖我同意雨果谁是建议你在这里手动罐安装到你的本地仓库(在.m2运行目录):
mvn install:install-file -Dfile={Path_to_your_ojdbc.jar} -DgroupId=com.oracle
-DartifactId=ojdbc -Dversion=10.2.0.3.0 -Dpackaging=jar
Run Code Online (Sandbox Code Playgroud)
但我想补充一点,上面的许可条款并不仅限于无法找到JDBC jar的地方,但它也限制了你安装它的地方!
实际上,您的本地Maven存储库必须是私有的而不是共享的,因为如果它是共享的,那么它将是一种独立分发jar的分发,即使是一小群人进入您的局域网,这代表了OTN许可协议违规.
此外,我认为您应该避免在公司存储库管理器(例如Artifactory或Nexus)中将JDBC jar作为单个工件安装,因为如果它已经安装,它仍将单独分发,即使只对您组织中的人员进行分发,这代表一个OTN许可协议违反.
Ant*_*oly 11
截至今天(2020 年 2 月 27 日),Oracle宣布已在 Maven Central 上以组 ID com.oracle.database发布了从版本 11.2.0.4(例如 ojdbc6)到 19.3.0(例如 ojdbc10)的所有 JDBC 客户端库:
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc10</artifactId>
<version>19.3.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
到目前为止,它不可能使用maven存储库.我使用常春藤作为依赖管理工具,但也使用maven2的ibiblio存储库.这适用于常春藤:
<dependency org="oracle" name="ojdbc14" rev="10.2.0.2" conf="*->default"/>
Run Code Online (Sandbox Code Playgroud)
Maven2的依赖可能是这样的:
<dependency>
<groupId>oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
请注意,我定义http://download.java.net/maven/2/和http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/ [organization]/[module]/[修订]/[工件] - [修订].[ext]作为我的常春藤设置上的外部maven2 repos.
Oracle JDBC 驱动程序现在在Maven Central 中可用。链接在这里:
Oracle 开发人员文章宣布在 Maven Central 中提供 Oracle JDBC 驱动程序:
Oracle 宣布 - Maven Central 中提供 Oracle JDBC 驱动程序
例子:
<!-- https://mvnrepository.com/artifact/com.oracle.jdbc/ojdbc10 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc10</artifactId>
<version>19.3.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
372543 次 |
| 最近记录: |