You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux服务器上JDeveloper ojmake无法加载pom.xml引用库的问题求助

Oracle ADF Maven项目CI/CD中ojmake依赖识别问题解决

关于ojmake对jpr类路径的依赖

是的,ojmake默认会优先读取JDeveloper项目文件(.jpr/.jpx)中的传统类路径配置,而非自动继承Maven的依赖上下文。本地环境正常是因为JDeveloper已经基于jpr配置维护了本地依赖缓存,但CI环境没有这个缓存,且ojmake默认不会主动扫描Maven已加载的依赖库,这就导致了编译时的package does not exist错误。

同步pom.xml与jpr描述符的方法

1. 用Oracle Maven插件自动同步

Oracle官方的oracle-maven-plugin提供了initialize目标,可基于pom.xml的依赖自动更新jpr文件的类路径配置。在CI流水线中,先执行以下命令完成同步:

mvn oracle:initialize

该命令会将pom中声明的依赖同步到jpr的<classpath>节点,确保ojmake能读取到正确的依赖条目。

2. 手动统一依赖配置(精确控制场景)

如果自动同步不符合需求,可手动编辑.jpr文件:

  • 打开项目的.jpr文件,定位到<classpath>节点
  • 移除本地路径的依赖条目,替换为Maven依赖的引用格式,示例:
    <classpath>
      <library name="com.oracle.adf.library:adf-controller:12.2.1.4.0" type="maven"/>
      <!-- 其他Maven依赖按此格式添加 -->
    </classpath>
    
    同时确保pom.xml中已声明对应依赖,保持两边配置一致。

调整CI流水线的ojmake插件配置

在pom.xml的oracle-maven-plugin配置中,显式传递Maven的编译类路径给ojmake,强制其使用Maven依赖而非仅依赖jpr配置:

<plugin>
  <groupId>com.oracle.maven</groupId>
  <artifactId>oracle-maven-plugin</artifactId>
  <version>12.2.1.4.0</version>
  <executions>
    <execution>
      <id>ojmake-compile</id>
      <phase>compile</phase>
      <goals>
        <goal>ojmake</goal>
      </goals>
      <configuration>
        <source>${project.build.sourceDirectory}</source>
        <destdir>${project.build.outputDirectory}</destdir>
        <!-- 注入Maven编译阶段的完整类路径 -->
        <classpath>${project.compileClasspathElements}</classpath>
        <project>${project.basedir}/src/main/META-INF/adf-config.xml</project>
      </configuration>
    </execution>
  </executions>
</plugin>

${project.compileClasspathElements}会自动获取Maven编译阶段的所有依赖路径,确保ojmake能找到所需的包。

CI环境额外注意事项

  • 确保CI环境的Maven settings.xml已配置Oracle Maven仓库,能正常拉取ADF相关依赖
  • 不要依赖CI环境中的本地JDeveloper安装路径,所有依赖均通过Maven管理
  • 执行ojmake前,确保mvn compile已完成,编译产物已生成

内容的提问来源于stack exchange,提问作者30thh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 19:32:37