maven 빌드결과와 이클립스 컴파일 된 결과가 서로 다릅니다.
- 작성자 :
- 박*한
- 작성일 :
- 2013-02-25 11:32:16
- 조회수 :
- 2,008
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요. 전자정부2.5를 사용해 개발중입니다.
작업중 maven 빌드결과와 이클립스 컴파일 된 결과가 서로 다른 부분이 있어 문의 드립니다.
로컬이클립스에서는 톰캣으로 개발을 하고 있고요, 사정상 ibatis 소스를 프로젝트 내부로 (전자정부2.5 pom.xml) 가져와 컴파일하여 배포하고 있습니다.
그런데 이클립스에서 clean 을 하게 되면 원하는 바대로 컴파일 된 class가 생성되는데요, maven 으로 빌드를 하게 되면 ibatis 의 빌드된 소스 class size 가 앞의 경우와 다르게 되면서 오류는 나지 않으나 정상작동을 하지 않습니다.(aspectJ에서 참조하기 위해 가져온 것이 목적이며 어노테이션 방식의 포인트컷을 사용하고 있음)
참고로 이클립스 컴파일의 경우(clean) 일반적으로 배포된 ibatis.jar 내부의 class size보다 수십byte 가 더 증가하며, maven 으로 빌드를 하게 되면 일반적으로 배포된 ibatis.jar 내부의 class size와 동일합니다.
이클립스에서 clean 시에 뭔가 정보를 더해서 ibatis 소스를 컴파일하는 것 같은데(예를 들면 포인트컷 정보 등?), maven 으로 빌드를 하게 되면 다 무시하고 ibatis.jar 를 그냥 가져오는 것 같습니다.
build 쪽 부분의 pom.xml 소스를 첨부드립니다. 제가 원하는 바는 이클립스로 컴파일 된 결과를 maven 빌드시에도 동일하게 생성했으면 하는 것입니다.
감사합니다.
작업중 maven 빌드결과와 이클립스 컴파일 된 결과가 서로 다른 부분이 있어 문의 드립니다.
로컬이클립스에서는 톰캣으로 개발을 하고 있고요, 사정상 ibatis 소스를 프로젝트 내부로 (전자정부2.5 pom.xml) 가져와 컴파일하여 배포하고 있습니다.
그런데 이클립스에서 clean 을 하게 되면 원하는 바대로 컴파일 된 class가 생성되는데요, maven 으로 빌드를 하게 되면 ibatis 의 빌드된 소스 class size 가 앞의 경우와 다르게 되면서 오류는 나지 않으나 정상작동을 하지 않습니다.(aspectJ에서 참조하기 위해 가져온 것이 목적이며 어노테이션 방식의 포인트컷을 사용하고 있음)
참고로 이클립스 컴파일의 경우(clean) 일반적으로 배포된 ibatis.jar 내부의 class size보다 수십byte 가 더 증가하며, maven 으로 빌드를 하게 되면 일반적으로 배포된 ibatis.jar 내부의 class size와 동일합니다.
이클립스에서 clean 시에 뭔가 정보를 더해서 ibatis 소스를 컴파일하는 것 같은데(예를 들면 포인트컷 정보 등?), maven 으로 빌드를 하게 되면 다 무시하고 ibatis.jar 를 그냥 가져오는 것 같습니다.
build 쪽 부분의 pom.xml 소스를 첨부드립니다. 제가 원하는 바는 이클립스로 컴파일 된 결과를 maven 빌드시에도 동일하게 생성했으면 하는 것입니다.
감사합니다.
A
안녕하세요.. 박상한님..
컴파일되고 빌드되는 것은 컴파일러나 jar로 묶는 방식에 따라 차이가 날 수 있습니다.
(class 파일도.. 컴파일러의 OS, 버전에 따라서 차이가 나며.. jar로 묶이면서도 META-INF 내용 들이 달라질 수있기 때문에 .. jar 파일 크기는 차이가 날 수 있음)
이 부분은 크기 차이가 날뿐 실행되는 방식에는 동일하게 동작해야 합니다..
이 경우는 AspectJ를 사용하신 경우라면.. 아마도 AspectJ 자체를 eclipse plugin 방식으로 사용하시는 것 같습니다. (AspectJ는 pre compiler 기능이 필요)
아마 이 부분 때문에.. 차이가 나실 것 같습니다..
개발환경 부분은 확인해 보십시오..
그리고.. 아마도 iBatis 부분 소스 상에 AspectJ를 적용해 놓으신 것 같은데.. 이 방식의 경우는 표준프레임워크에 대한 표준 측면에서 문제의 소지가 있기 때문에 가이드해드리는 방식은 아닙니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
컴파일되고 빌드되는 것은 컴파일러나 jar로 묶는 방식에 따라 차이가 날 수 있습니다.
(class 파일도.. 컴파일러의 OS, 버전에 따라서 차이가 나며.. jar로 묶이면서도 META-INF 내용 들이 달라질 수있기 때문에 .. jar 파일 크기는 차이가 날 수 있음)
이 부분은 크기 차이가 날뿐 실행되는 방식에는 동일하게 동작해야 합니다..
이 경우는 AspectJ를 사용하신 경우라면.. 아마도 AspectJ 자체를 eclipse plugin 방식으로 사용하시는 것 같습니다. (AspectJ는 pre compiler 기능이 필요)
아마 이 부분 때문에.. 차이가 나실 것 같습니다..
개발환경 부분은 확인해 보십시오..
그리고.. 아마도 iBatis 부분 소스 상에 AspectJ를 적용해 놓으신 것 같은데.. 이 방식의 경우는 표준프레임워크에 대한 표준 측면에서 문제의 소지가 있기 때문에 가이드해드리는 방식은 아닙니다.
그럼.. 즐거운 하루되십시오.
감사합니다.