2010-07-28 3 views
2

서버 패키지와 클라이언트 패키지가 모두있는 Java 프로젝트가 있습니다. 또한 도서관 패키지가 있습니다.서버 및 클라이언트 패키지 용 Java 프로젝트의 공유 리소스

나는 이클립스를 사용하여 모든 자바 프로젝트를 하나의 자바 프로젝트에 넣었다. 각 섹션 서버, 클라이언트 및 라이브러리는 별도의 패키지에있다. 문제는 내가 내보낼 때 모든 것이 Jar 파일에 추가된다는 것이다.

그래서 두 개의 서로 다른 프로젝트, 클라이언트 및 서버가 필요하다고 가정하지만 공유 라이브러리 파일은 무엇입니까? 나는 그들에 대해 무엇을해야합니까? 실제로 세 가지 프로젝트가 필요합니까? 모든 것이 실제로 관련되어 있기 때문에 다소 다루기 힘들어 질 것이고 나는 그것들을 하나로 묶고 싶습니다.

답변

4

나는 일식 사용하고 하나의 자바 프로젝트에 모든 넣어 가지고, 각 섹션 서버, 클라이언트 및 라이브러리 별도의 패키지에 문제가 있다는 것입니다 내보낼 때 모든 것이 Jar 파일에 추가됩니다.

이것은 내게 흥미로웠다. 왜 클라이언트와 서버 모두를 가지고있는 것을 내보내는가? 클라이언트 - 서버 관점에서 그들은 개별적으로 배포 될 것입니다.

개의 프로젝트가 실제로 필요합니까? 모든 것이 실제로는 과 관련되어 있으므로 은 다루기가 힘들어 질 것입니다. 나는 그들을 과 함께 유지하고 싶습니다. 십오 지금 프로젝트/모듈를 통해 의존성을 관리 할 수있는 방법에

덕분에, 나는 당신이 그것을 사진으로는 나쁘지 보이는 생각하지 않습니다. 예를 들어 서버 코드에서 동시에 작업하고 클라이언트 코드의 클래스와 인터페이스를 사용하고 서버 프로젝트에서 생성 한 참조 JAR을 사용할 수 있습니다.

또한 'Project'는 코드의 가장 포괄적 인 캡슐화가 아니며 관련 'Projects'를 포함 할 수있는 'Workspace'도 있습니다. 다른 IDE는 'Project'대신 'Module'과 같은 다른 문구를 사용합니다.

닫기 생각 : 최소 임피던스 경로에 대한

, 난 당신이 두 개의 프로젝트으로 클라이언트와 서버 부분을 분리해야한다고 생각하고, 같은 당신이 컴파일하는 경우 공유 라이브러리에 대한 생각 하는가 그것은 출처 즉, 타사 JAR이 아닙니다.

하루가 끝나면 컴파일 과정에서 3 개의 '제품'을 가져와 두 곳의 배포판에 '라이브러리'가 복제 된 상태에서 해당 제품이 속한 곳에 배포 할 수 있습니다.

2

공유 코드에 대해 별도의 프로젝트를 만들 수 있으며이를위한 라이브러리 (즉, jar 파일)를 만들 수 있습니다. 그런 다음 클라이언트 및 서버 프로젝트 모두 공유 라이브러리를 사용할 수 있습니다.

이 공유 라이브러리를 다른 프로젝트에도 사용할 수 있습니다.

참고 : Eclipse는 소스 파일을 해당 클래스 파일로 컴파일 한 다음 bin 폴더에 저장하거나 프로젝트 속성에 대해 출력 폴더를 설정 한 모든 위치에 배치합니다. 기본적으로 jar 파일을 작성하지 않습니다.

jar 파일을 만들려면 ant와 같은 도구를 사용하는 것이 가장 좋습니다. 그러면 필요한 병이 무엇이든 만들 수 있고 원하는대로 구조화 할 수 있습니다. 여기

는 참조 링크입니다 : Create Multiple JARs from Eclipse Project

+0

안녕하세요, 저는이 문제를 해결하기 위해 질문을 약간 업데이트했습니다. 전체 프로젝트를 하나의 관련 프로젝트로 구성 할 수 있지만 코드 섹션을 jar 파일로 내보낼 수있는 방법이 있습니까? – jax

+0

jar 파일을 빌드하려면 한 가지 방법은 ant와 같은 도구를 사용하는 것입니다. 내 최신 편집을 참조하십시오. – dcp

1

클라이언트와 서버 측에 대해 별도의 프로젝트를 만들 수 있습니다. 공유 패키지는 클래스 경로 정의에 첨부 할 수 있습니다.

0

... 문제는 내가 내보낼 때 모든 것이 Jar 파일에 추가됩니다.

정말 문제가 있습니까? 어쩌면 공유 된 코드는 책임이 아닌 자산입니다. 개발자 문제를 최적화하기 전에 배포 문제를 염려하기 전에 여기에서 우리가 결정한 문제는 결국 문제가 아닐 수도 있습니다.

그래서 나는 두 개의 서로 다른 프로젝트, 클라이언트와 서버를 필요로한다고 가정하지만, 공유 라이브러리 파일에 대한 어떤 을? 그 (것)들에 관하여 나는 무엇 합니까? 실제로 세 개의 다른 프로젝트가 필요합니까? 이 실제로는 관련이 없으므로 이 약간 다루기 힘들어 지므로 을 함께 사용하겠습니다.

여기에도 비슷한 상황이 있으며 공유 코드를 채택했습니다. 모든 사람은 동일한 코드를 얻고 시작하는 데 필요한 모드와 구성을 선택합니다.

큰 규모의 시스템 (5,000 개가 넘는 클래스)을 확인하면 서버 (두 가지 주요 특성), 클라이언트 (다른 ​​두 가지 유형), 공유 된 컨텐츠 (타사 jar, 시각적 자산 등) 및 사이트 특정 자료 (구성 파일, 시작 스크립트 및 예제 데이터)를 제공합니다.

결과적으로 한 번 체크 아웃하면 모든 기본 위치, 빌드 스크립트 및 Netbeans 및 Eclipse 실행 구성에 대한 전체 패키지가 제공됩니다. 결과적으로 빈 머신 (IDE 만 사용)에서 약 5 분 안에 작동중인 클라이언트 - 서버 조합으로 이동할 수 있습니다.

결과적으로 서버 아이콘을 두 번 클릭하고 사이트 특정 구성을 실행하는 서버 프로세스를 시작합니다. 클라이언트를 두 번 클릭하면 방금 만든 서버에 연결할 준비가 된 클라이언트 프로세스가 시작됩니다.

펀치 라인 : 아주 좋은 이유가없는 한 개발 및 배포를 어렵게 만들지 마십시오. 우리의 경우 모든 설치에 똑같은 패키지를 제공하는 상황을 유지하는 것이 더 쉽고 저렴하고 쉬웠습니다.

관련 문제