2010-02-15 2 views
0

"The Joel Test: 12 Steps to Better Code"의 두 번째 단계는 "한 단계에서 빌드 할 수 있습니까?"라고 나와 있습니다. 이에 대한 나의 대답은 현재 아니오입니다. 다음과 같이 내 응용 프로그램 구조는 다음과 같습니다한 단계에서 Java 웹 응용 프로그램 빌드

구축하고 내 소프트웨어를 배포하기 위해
+ 
+-MyApp // this is just a vanilla Java Application 
+-MyWebApp // this Dynamic Java Web Application (deployed Tomcat and launches 
      // a thread contained in MyApp) 
+-MyCommonStuff // these are common classes shared between MyApp and MyWebApp 
       // Ex. Database access code & business classes 

나는 다음 단계를 수행하십시오
2. SVN에서 빌드 MyCommonStuff.jar을
1. 체크 아웃 MyApp를 MyWebApp로, MyCommonStuff을 복사 는 "libs와"디렉토리
3. 빌드 MyApp를로와 "libs와"디렉토리에
4. 빌드 MyWebApp.war 복사
5 (MyApp.jar와 MyCommonStuff.jar의 위치 개미 build.xml 파일을 지정합니다). build.xml의 배포 부분은 Tomcat 배포 작업을 사용하여 Tomcat 서버에 배포합니다.

제 질문은이 시나리오에 적용됩니다. 즉, 1. ~ 5. 단계를 실행하는 "마스터"빌드 스크립트가 있어야합니까?
스크립트가 정상적인 #/bin/sh 스크립트인지 아니면 내가 활용할 수있는 도구가 있어야합니까? 내 환경 설정은 Ant 및 linux 콘솔 명령을 사용하는 것에 충실합니다.
감사합니다.

답변

1

Maven 대신 Ant를 사용하려는 경우 Ivy입니다. 이것은 종속성 관리자 일뿐입니다. Maven과 약간 비슷하지만 Maven과 다른 모든 것들은 없습니다.

두 가지 중 하나를 사용하는 것이 좋습니다. 이런 종류의 의존성을 가진 프로젝트가 있다면, 중앙 저장소에 저장하고 의존성 관리자를 사용하면 프로젝트를 훨씬 더 쉽게 만들 수 있습니다!

+0

그는 "멘이하는 모든 다른 것들"이 필요합니다. :) – Bozho

6

maven2을 사용할 수 있습니다. 필요한 모든 것을 지원합니다 (플러그인을 통해). 디렉터리 규칙을 준수하면됩니다.

또한 필자는 maven 구성을 취하여 모든 것을 실행 및 배포하는 지속적인 통합 엔진을 제안합니다. HudsonTeamCity은 좋은 옵션입니다.

+0

내가 얻으려는 것의 과잉이라고 생각합니다. 학습 곡선은 내가 얻은 이익에 너무 가파르다. 그래서 "필자의 선호는 Ant와 linux console 명령을 사용하는 것이 좋다"라고 말한 것이다. 감사합니다. . –

+1

종종 잘못된 생각의 기차입니다. 개미 스크립트는이 일을 할 수 있지만, 당신이 maven을 사용하는 것보다 지원하기가 어려운 더 복잡한 스크립트로 끝날 것입니다. – Bozho

+0

비록 maven과 같은 표준 도구를 사용하면 프로젝트를 유지 보수/연장해야하는 경우에도 간단합니다. 그러나, maven에는 몇 가지 문제점이 있습니다. 특히 mavenized되지 않은 라이브러리가있는 경우 (그러나 사용중인 경우) 특히 그렇습니다. 아마도 개미는 로컬 저장소에 – Chii

1

Ant ant task을 통해 모든 작은 개미 부품을 호출하는 글로벌 Ant 스크립트를 수행해야합니다.

다른 답변을 읽은 후 편집 : 또한 maven을 사용해야합니다. 하지만 Maven이 정말로 과도한 경우 전체 빌드를 한 번에 실행하려면 전체 build.xml을 사용하십시오.

관련 문제