Maven打包提示“软件包 oracle.jdbc 不存在”

  在使用Maven命令打包时报错:

[INFO] -------------------------------------------------------------
[ERROR] \workspace\wlxm-ycps\src\main\java\com\petrochina\ycps\service\operation\impl\AssessOptionManagerImpl.java:[18,8] 软件包 oracle.jdbc 不存在
[ERROR] \workspace\wlxm-ycps\src\main\java\com\petrochina\ycps\service\operation\impl\AssessOptionManagerImpl.java:[113,46] 找不到符号
符号: 变量 OracleTypes
                   cs.registerOutParameter(4, OracleTypes.CURSOR);
[ERROR] \workspace\wlxm-ycps\src\main\java\com\petrochina\ycps\service\operation\impl\AssessOptionManagerImpl.java:[243,42] 找不到符号
符号: 变量 OracleTypes
               cs.registerOutParameter(6, OracleTypes.CURSOR);//游标类型
[INFO] 3 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure

\workspace\wlxm-ycps\src\main\java\com\petrochina\ycps\service\operation\impl\AssessOptionManagerImpl.java:[18,18] 软件包 oracle.jdbc 不存在
\workspace\wlxm-ycps\src\main\java\com\petrochina\ycps\service\operation\impl\AssessOptionManagerImpl.java:[113,46] 找不到符号
符号: 变量 OracleTypes
                   cs.registerOutParameter(4, OracleTypes.CURSOR);
\workspace\wlxm-ycps\src\main\java\com\petrochina\ycps\service\operation\impl\AssessOptionManagerImpl.java:[243,42] 找不到符号
符号: 变量 OracleTypes
               cs.registerOutParameter(6, OracleTypes.CURSOR);//游标类型

[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10 seconds
[INFO] Finished at: Mon Oct 22 15:25:59 CST 2012
[INFO] Final Memory: 41M/158M
[INFO] ------------------------------------------------------------------------

这里提示找不到“oracle.jdbc”,而这个包是在ojdbc6-11.2.0.1.0.jar中,WEB-INF/lib目录下也包含该jar。在网上搜索没有有用的信息,忽然想起来pom.xml中有关于ojdbc jar包的设置,打开之后发现问题:

<dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.1.0</version>

            <scope>runtime</scope>

</dependency>

问题就是这里将ojdbc的依赖范围设置成了“runtime”,即运行时有效,在编译时没有加载该jar包所以报错。关于scope参数的解释如下:

在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:

    * compile,缺省值,适用于所有阶段,会随着项目一起发布。
    * provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
    * runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
    * test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。

    * system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

解决方法:将scope的参数值由“runtime”改成“compile”,或者将该元素删除即可。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当使用Maven进行打包时,如果出现“com.cj.commonutils不存在”的错误,通常有以下几种可能的原因: 1. 项目依赖错误:检查项目的pom.xml文件,确保已正确添加了名为com.cj.commonutils的依赖。可以通过在pom.xml文件中的<dependencies>标签下添加如下代码来引入依赖: ```xml <dependency> <groupId>com.cj</groupId> <artifactId>commonutils</artifactId> <version>版本号</version> </dependency> ``` 2. 依赖库版本问题:检查依赖的版本号是否正确。如果指定版本号不存在或者不可用,可能会导致报错。可以尝试指定其他可用的版本号,或者查看该依赖库的官方文档以确认可用的版本号。 3. Maven仓库问题:如果在Maven仓库中无法找到com.cj.commonutils库,可能是因为该库尚未发布到公共仓库或者您的Maven设置没有正确地连接到所需的仓库。您可以尝试执行以下命令来更新Maven仓库并重新缓存依赖项: ```shell mvn clean install -U ``` 4. 本地库缺失:如果您尝试使用本地库进行构建,并且在本地仓库中找不到com.cj.commonutils库的jar文件,可能是由于本地库的路径不正确或本地库未正确安装导致。您可以尝试手动将com.cj.commonutils库的jar文件复制到Maven本地库的正确路径下。 总之,详细检查和排除上述可能原因,并确保正确配置依赖、版本和仓库信息,可以解决“com.cj.commonutils不存在”的Maven打包错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值