2017-03-29 10 views
0

우리는 기존 엔터프라이즈 애플리케이션 중 하나를 maven 프로젝트로 변환합니다. 변경 사항을 최소한으로 유지하기 위해 우리는 글로벌 저장소에서 로컬 저장소를 다운로드하는 대신 로컬 저장소에 수동으로 설치하여 기존 응용 프로그램의 모든 기존 jar를 재사용하기로 결정했습니다. 이 응용 프로그램은 귀가 RAD/ECLIPSE에서 내보낼 때 수년 동안 잘 작동했습니다. 이 응용 프로그램은 현재 ojdbc6.jar를 사용합니다. 우리가 받는다는 빌드를 실행하면 Maven 프로젝트로 변환 한 후 그러나, 우리는 클래스 중 하나에 대해 다음과 같은 컴파일 오류가 발생합니다 :Maven 빌드는 ojdbc6.jar와 함께 실패하지만 ojdbc7.jar와 함께 작동합니다.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler- 
    plugin:2.3.2:compile (default-compile) on project OLS: Compilation 
    failure: Compilation failure: 
    [ERROR] \workspace_maven\Project\src\com\datalayer\MyConnection.java: 
    [601,0] error: myOracleCachedRowSet is not abstract and does not 
    override abstract method <T>getObject(String,Class<T>) in ResultSet 

MyConnection.java 파일은 OracleCachedRowset 클래스를 확장하는 내부 클래스 myOracleCachedRowSet 클래스를 가지고 있으며, RowSet 인터페이스를 구현 . ibm 특정 JDK 7 및 maven 버전 3.3.9를 사용하고 있습니다. 그러나 ojdbc7.jar로 전환하면이 컴파일 오류가 Maven 빌드에 나타나지 않습니다. 하지만 전에 말했듯이이 빌드는 ojdbc6 jar를 사용하는 Maven없이 Eclipse/RAD에서 잘 작동합니다. 그래서이 maven 빌드가 ojdbc jar 버전과 어떻게 연결되어 있는지 궁금합니다. 둘 사이의 연결은 어디입니까? 누구든지 도와 줄 수 있습니까? 또한 Oracle 11g를 사용하고 있으므로 Oracle 12c 데이터베이스에 사용되므로 ojdbc7 jar로 전환 할 수 있다고는 생각하지 않습니다.

+0

Maven이 ojdbc.jar 버전에 연결되어 있지 않습니다. Eclipse/RAD에서 Eclipse/RAD의 차이점은 Maven에서 사용하지 않는 다른 컴파일러를 사용하고 있다는 것입니다. 또한 Eclipse와 RAD의 차이점. 또한 IBM JDK 7 컴파일러를 올바르게 구성 했습니까? JAVA_HOME을 올바르게 정의 했습니까? 그 외에도 더 많은 uptodate 플러그인을 사용하는 것이 좋습니다. maven-compiler-plugins 2.3.2는 약간 오래된 것입니다 ... (현재 버전 3.6.1) .... – khmarbaise

+0

maven 컴파일러 3.6.1 및 JAVA_HOME을 사용하고 있습니다. 작업 영역 JRE는 IBM JRE로 설정됩니다. 또한 Maven 빌드를 실행하는 동안 IBM JRE와 연관됩니다. 여전히이 오류가 발생합니다. –

답변

0

ojdbc6.jar 파일을 로컬 .m2 폴더에 추가하고 POM.xml에 종속성을 사용할 수 있습니다.

mvn install:install-file -Dfile=/home/user/Libraries/ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11g -Dpackaging=jar 

다음과 같이 POM.xml에 종속성을 사용할 수 있습니다.

<dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>ojdbc6</artifactId> 
     <version>11g</version> 
    </dependency>