문제

소량의 경험에서 ANT를 빌드 도구로만 사용했습니다. 더 나은 다른 프로젝트가 있습니까?

도움이 되었습니까?

해결책

Maven

대부분의 일반적인 작업의 경우 복잡한 build.xml을 작성할 필요가 없기 때문에 Maven은 매우 좋은 기본값을 가지고 있으며 구성에 대한 모든 규칙이기 때문에 ANT보다 훨씬 낫습니다.

또한 라이브러리의 큰 중앙 저장소를 가지고 있으며 "최신 안정적인 커먼즈를 사용하는 것"과 같이 구성하기가 매우 쉽습니다. 그런 다음 Maven은 최신 안정 버전을 다운로드하고 (더 이상 항아리를 VCS로 확인하지 않음) 새로운 업스트림 안정 버전이 출시되면 다운로드됩니다. 물론 필요한 경우 특정 버전으로 잠그는 것은 쉽습니다.

또한 NetBeans 및 Eclipse (M2Eclipse 플러그인)와 잘 통합되어 IDE는 POM.XML 파일에서 선언하는 모든 설정 (종속성 포함)을 존중합니다.

Maven에는 몇 가지 단점이 있습니다. 일부 플러그인은 문서화가 잘못되어 있으며, 두 IDE와의 통합은 실제로 완벽하지 않으며, 다른 방식으로 일부 오류 메시지를 이해하기 어려울 수 있습니다.

다른 팁

개미는 여전히 주요 선수입니다. 내 경험상, 그것은 지배적입니다. 또한 아이비와 함께 Maven의 강점을 처리합니다. IMO, ANT는 다른 도구의 프레임 워크가됩니다. XML은 너무 단단합니다 (아래 링크 참조).

Maven 2는 또한 주요 선수입니다. 나는 그것을 좋아하고 Maven 1에게 사실이었던 비판에 대해 강렬한 사람들을 알고 있습니다 (그것은 먼 길을 왔습니다).

Groovy는 개미를 기반으로하기 때문에 빌드 공간에서 멋진 물건을 제공합니다. Gant는 성배에 사용되지만 Gradle에 포함될 수 있습니다. 이것들은 Java에도 사용될 수 있습니다.

내 자신의 블로그를 움켜 쥐게 될 위험이 있습니다. 여기 게시물이 있습니다 Gant와 Gradle에 대해. 여기에 대한 링크가 있습니다 매우 현재의 논쟁 그들의 미래에 대해.

엔터프라이즈에서는 개미가 여전히 굳건한 선수입니다. 종속성은 빠르게 변하지 않습니다. 상당히 최신 버전의 부양 가족으로 이동하는 오픈 소스 프로젝트와 달리 대부분의 기업은 종속성을 너무 빨리 변경하지 않으려 고 노력합니다. 이를 감안할 때 Maven의 장점은 Ant에 비해 그리 많지 않습니다.

그런 다음 다시 Maven의 기능을 원한다면 Ant Pols는 아이비가 있습니다.http://ant.apache.org/ivy/) 종속성 기능의 경우.

개미를 계속 사용하려면 ANT를 사용하여 ANT를 사용하여 최상의 생산성을 유지할 수 있습니다.

행운을 빕니다,

어떤 사람들은 좋아합니다 여자 이름, 그것은 개미를위한 thingy를 관리하는 종속성이므로 개미 배경에서 오는 사람들이 그것을 좋아할 것이라고 생각합니다.

다른 사람은 좋아합니다 buildr. 그것은 Jruby 일이므로 같은 프로젝트에서 Ruby와 Java를 저글링 할 수 있다면 흥미로울 것이라고 생각합니다.

개인적으로, 나는 단지 사용합니다 Maven. 기본 pom.xml 파일을 채찍질하고 모든 빌드 명령을 처분 할 수 있습니다. 또한 프로젝트가 커지면 플러그인을 실행하고 종속성을 추가하기위한 인프라가 이미 있습니다.

당신도 가지고 있습니다 간트. Gant는 Groovy + Ant입니다. 작업을 일반 그루비로 작성할 수 있으며 Ant 작업을 호출 할 수도 있습니다. 당신이 Java 상점이고 당신이 가지고있는 개미 기술을 재사용하지만 XML을 싫어하고 싶다면, 나는 Gant를 추천합니다. 설정하기 쉽고 개미에 포함시킬 수 있습니다 (또한 개미에서 Gant에게 전화 할 수 있습니다).

나는 정말 좋아한다 스콘, 구성 파일이 모두 파이썬 스크립트 인 빌드 도구입니다. 이것은 파이썬이나 유사한 스크립팅 언어를 아는 사람에게 호소합니다. Scons는 Java 및 C/C ++ 및 기타 언어와 잘 어울리도록 설계되었으며 과거에는 매우 만족했습니다.

SCONS 파일은 Python으로 작성되었으므로 특별한 작업을 수행 해야하는 경우 임의의 Python 코드를 작성할 수 있습니다. 그러나 Python에 완전히 익숙하지 않다면 개미를 확장하려고하는 것보다 더 높은 학습 곡선이있을 수 있습니다.

Maven2는 올라 오는 것 같습니다.

그러나 우리 프로젝트의 경우 우리는 가능한 곳이면 개미로 되돌아 가고 있습니다.

Maven2는 원하는 방식으로 정확하게 얻으려면 약간의 지식이 필요하며 Maven2 버전은 클래스 경로를 다르게 처리하는 것처럼 보입니다.

또한 의존성의 종속성에 포함 된 모든 라이센스를 확인하는 것은 고통입니다.

의존성을 직접 파악해야하므로 시작 시간이 느려질 수 있지만 적어도 쉽게 읽을 수 있습니다. 여기서 마법이 일어나지 않습니다 :)

Maven을 사용하는 경우 Nexus와 같은 내부 저장소를 생각해보십시오. 이렇게하면 일부 라이브러리가 인터넷에서 멀어지기로 결정하면 소프트웨어가 죽지 않습니다.

*우리는 maven1로 불타고 있습니다. Ibiblio Maven1 저장소 리디렉션 및 Maven1은 리디렉션을 지원하지 않습니다.

올바른 도구를 고려할 때 요구 사항을 시작하도록 촉구합니다. 각 프로젝트는 다르며 사용하는 도구는 패션이 아닌 문제 공간을 반영해야합니다.

즉, 저는 일반적인 사용을 위해 ANT가 아마도 Java 응용 프로그램을 구축하기위한 최고의 일반적인 도구 일 것입니다. 종종 의존성 관리를위한 다른 도구와 효과적으로 사용되지만 문제가없는 솔루션으로 다시 스커트합니다.

아주 좋은 소식은 프로세스가 좋은 스위치 빌드 도구가 상당히 고통스러운 프로세스 - 수업이라는 것입니다.

당신은 이미 몇 가지 답을 찾을 수 있습니다 좋은 Java Make Utilities는 무엇입니까?.

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