문제

우리는 대부분 Axis2 스텁, 스켈레톤 등으로 구성된 자동 생성 클래스를 많이 가지고 있습니다.일부 복잡한 wsdls의 경우 Axis2는 TON의 java-beans, 스텁 등을 생성합니다.그리고 자동 생성을 사용하는 다른 경우도 있을 것이라고 확신합니다.

지금은 이를 코드 기반의 다른 일급 멤버로 취급하며 동일한 패키지에 저장됩니다.

그러나 리팩토링, 정리 등을 수행할 때 이러한 자동 생성 클래스에서 나오는 경고를 제거하기가 어려워집니다.예를 들어, Java1.5 제네릭을 사용하기 위해 코드를 정리하려는 경우 이러한 문제가 있는 클래스 중 얼마나 많은 클래스가 우리 클래스인지 자동 생성되는지 알 수 있는 좋은 방법이 없습니다.

자동 생성된 부분을 다른 패키지로 분리해야 합니까?이러한 아티팩트를 저장소에 어떻게 저장합니까?

편집하다:아래의 꽤 많은 답변에서 '빌드 프로세스 중 생성'을 볼 수 있습니다.그렇게 하면 이점이 있지만 저장소 체크인에서 벗어날 수 있는 방법은 잘 모르겠습니다.

내 코드에는 이러한 클래스 중 일부에 대한 컴파일 시간 종속성이 있으며 개발 중 빌드는 Eclipse에서 'ctrl-s'입니다.우리는 ant-script를 사용하여 컴파일을 생성하고, 테스트를 실행하고, 결과물을 생성합니다.

도움이 되었습니까?

해결책

동일한 패키지를 보관할 수 있지만 다른 소스 폴더 (생성 SRC와 같은)를 사용합니다. 이것이 우리가하는 일입니다. 나는 실제로 소스 코드 저장소에서 생성 된 코드를 저장한다는 전체 아이디어에 대해 울타리에 있습니다. 우리는 프로젝트의 다른 개발자들에게 편리함으로 수행하지만 일반적으로 빌드 프로세스의 일부로 소스 코드를 재생하는 것이 합리적입니다. 이 생성 된 코드가 변경되지 않을 경우 별도의 프로젝트를 사용하고 항아리를 생성하는 것이 더 실용적 일 수 있습니다.

다른 팁

모범 사례 요약 :

  • 반복 가능하게하십시오
    • 빌드 프로세스의 일부로 생성 된 코드를 만듭니다.
    • 생성 된 코드를 소스 컨트롤로 확인하지 마십시오. (소스를 확인하십시오. 예 : WSDL)
  • 생성 된 코드를 관리 코드와 별도로 유지하십시오
    • 생성 된 출력에는 다른 소스 폴더를 사용하십시오.
    • 이 생성 된 코드가 종속성이되도록 별도의 .jar를 제공하십시오.
    • 다른 IDE 프로젝트 (또는 Maven 모듈) 사용을 고려하십시오.

이 파일을 자신의 프로젝트에 넣었습니다. 이런 식으로 빌드 파일, 필요한 모든 패치 등을 한 곳에 추가하고 생성 된 코드에 대한 모든 경고를 끄십시오.

소스 제어 시스템에 체크인하는 경우 ~하지 않다.빌드 단계에서 다시 생성되도록 합니다.WSDL에서 생성된 경우 결과 코드가 아닌 WSDL을 체크인하세요.

해당 빌드 단계에서 생성된 코드에 대해 완전히 별도의 .jar을 생성한 다음 소스 파일을 삭제하여 유지관리자가 자동 ​​생성된 소스를 직접 편집하려고 시도할 가능성을 최대한 낮추는 것이 좋습니다.

이렇게 하면 리팩토링 활동에서 자동 생성된 코드가 조작할 소스가 아닌 타사 라이브러리처럼 표시됩니다.

생성 된 각각의 각 세트에 대해 생성을 수행하는 새 프로젝트를 만듭니다. 그런 다음 아티팩트를 JAR 및 소스 ZIP 파일에 묶은 다음 앱에서 참조하십시오. 일을 멋지고 별도로 유지하고 생성 된 유물이 IDE에 의해 변화가 아니라는 사실을 강조합니다.

Maven과 Axistools-Maven-Plugin을 사용하면 생성 된 소스는 'Target'디렉토리의 다른 소스 폴더의 장소입니다. 이 대상 디렉토리는 Maven이 모든 파일과 물건을 생성하는 곳이므로 청소할 수 있습니다.
생성 된 파일이 IDE 내의 다른 소스 폴더에도 나타나기 때문에 이것은 매우 회복됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top