2012-03-23 6 views
2

동일한 엔티티로 3 개의 Java 프로젝트가 있습니다.다중 프로젝트간에 엔티티 공유

엔티티는 개발 단계에서 진화 할 수 있기 때문에 이러한 프로젝트간에 엔티티를 공유하려고합니다.

엔티티가있는 jar 파일을 만들고 Maven (저장소가있는)을 사용하여 공유하는 것에 대해 생각하고 있습니다.

다른 해결책이 있습니까?

+0

"엔터티"가 의미하는 것을 정의해야합니다. 용어가 너무 애매합니다. – skaffman

+0

엔티티 란 무엇입니까? "evoluate"- 당신은 "진화"를 의미합니까? –

+0

소스 코드에서 엔티티를 재사용하고 싶습니까? 가능하다면 모르겠지만 이클립스의 별도 프로젝트에서 클래스를 가져올 수 있습니다. 또한 이러한 엔티티 클래스와 상호 작용하는 방법에주의해야합니다. 공용 메서드를 그대로두면 괜찮을 것이지만 수정 된 경우 (진화 할 수 있다고 말할 때 이것을 암시 함) 이로 인해 문제가 발생할 수 있습니다. 당신은 어떤 인터페이스에 대해 프로그램을 만들거나 어떻게 든 그들을 격리시켜야 할 것입니다. –

답변

2

나는 또한 프로젝트간에 코드를 공유하기 위해 메이븐을 사용하는 것이 좋습니다 수를 테스트합니다.

는 여기에 몇 가지 팁을 시작할 수 있습니다

  • 는 넥서스로 메이븐 저장소 관리자를 사용합니다. 그것은 안정된 개발 환경을 만드는 데 도움이 될 것입니다.
  • 모든 개발자 (Continuous Integration Server 사용자)는 Maven Repository Manager를 사용하도록 설정 파일을 구성해야합니다. POM에 리포지토리를 지정하지 말고 만 Maven Repository Manager에 구성하십시오. http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.html
  • 부모 POM의 dependencyManagement 및 pluginManagement 요소를 사용하여 모든 플러그인 버전 및 종속성 을 사용하고 있습니다. 다른 POM에서는이 버전을 생략하십시오 ( 은 부모 POM에서 상속받습니다).
  • 또한 다중 모듈 빌드 및 상위 POM에 다른 POM을 사용하는 것이 좋습니다.
1

일반적인 인터페이스, 클래스, 기능 또는 구성 요소를 공유하려는 경우 Maven을 사용하십시오. 종속성 관리 외에도 표준 프로젝트 레이아웃에 보너스를 추가하면 사물을 단순화 할 수 있습니다. 가장 일반적인 연속 통합 서버 및 표준 릴리스 프로세스와의 손쉬운 통합은 추가 이점입니다.

확실히 Maven을 살펴보십시오.

0

개체는 내가 지정한 개체를 나타냅니다. 그렇다면 Java에서 구현되는 기본 메커니즘은 객체 직렬화 - http://en.wikipedia.org/wiki/Serialization입니다. jar 파일의 경우 엔티티가 변경되면 매번 jar도 변경해야합니다. 지루할 수 있습니다.

+0

여기 엔티티는 일반적으로 데이터베이스에 매핑되는 도메인 모델의 기본 컨테이너 클래스 부분입니다. http://en.wikipedia.org/wiki/Domain_model –

1

자신의 JAR 라이브러리를 만드는 것은 확실히 좋은 해결책입니다.

  • 항아리 파일 의존성 관리를 통해 배포하기 쉽다 (Gradle을 받는다는, 아이비, ..)
  • 항아리는 라이브러리를 사용
  • 프로젝트 특정 스럽다 대해 테스트 될 수 버전이다. 그렇지 않은 경우 엔티를 변경하고 종속 프로젝트를 변경하는 것을 잊어 버리면 문제가 발생할 수 있습니다. -> 통합

감사

0

표준 전쟁 파일을 roo로 생성하십시오.하지만 패키지를 jar 파일로 변경하십시오.

그런 다음 표준 war 파일에서이 jar를 배포 할 수 있습니다 (jar를 maven 종속성으로 사용).PizzaShop-applicationContext.xml과 같이 고유 한 명명 된 applicationConext를 유지하고 pizzaShop-applicationContext-jpa.xml과 동일하게 유지합니다. 그래서 부모 스프링 프로젝트에서 나는 이런 방식으로 다양한 프로젝트를 쌓을 수 있습니다.

아예 발전기가 더 쉽게 작동 할 수 있도록 생성 된 webapps 폴더도 유지하십시오. (이것은 pom.xml을 열고 jar 파일로 다시 변경해야 함을 의미합니다). 또한 non-roo 생성 된 war 파일 인 web.xml 항목 추가에 대한 잘라 내기 및 붙여 넣기를 지원합니다.

당신은 봄 프로젝트처럼이 병들을 섞어서 매치시킬 수 있습니다. 그것들은 자체적으로 포함 된 springness 단위와 같은 기능을하며, 같은 webapp/web.xml 환경에서 다른 spring jars와 나란히 나란히 앉아서 잘 작동합니다.

지루하지만 여전히 스프링 코드를 직접 작성하는 것이 좋습니다.

관련 문제