Ant가 여전히 Java 빌드의 "주류"에 있습니까?


14

우리는 더 포괄적 인 Ant 빌드 (예 : CVS에서 가져 오기, 클린 컴파일, jar, 아카이브, 이메일 등)로 개발자 IDE에서 컴파일 된 클래스를 간단히 정리하는 배치 명령 파일 (windows .bat)을 천천히 대체했습니다.

나는 Ant와 함께 많은 시간을 배우고 문제를 디버깅했기 때문에 이러한 작업에 사용하는 것이 가장 편안합니다. 그러나 나는 개미가 내가 처음 학습을 시작했을 때와 같이 여전히 광범위하게 사용되는지 또는 "세계가 더 새로운 것 (그리고 아마도 더 매끄러운)으로 이동했는지"궁금하다. (예를 들어, 한 번도 사용하지 않은 더 많은 Maven 빌드 물건이 배포되는 것을보기 시작했습니다.)

이 질문의 실질적인 중요성은 새로운 개발자에게 Ant를 배우도록 강요 하는지 아니면 빌드를 위해 다른 것을 배워야하는지 여부입니다.

나는 트렌드에 결코 의존하지 않기 때문에 다른 Java 개발자들로부터 그들이 최고의 빌드 툴이라고 생각하는 것과 새로운 개발자가 배워야한다고 생각하는 것을 듣는 것이 좋을 것입니다.


아래의 모든 답변을 읽고 모두 훌륭했습니다! Maven이 Ant보다 개선 한 기능에 대한 통찰력에 감사드립니다. 나는 Maven을 조사 할 것이다.
Sam Goldberg

개미를 위해 많은 수의 스크립팅을 필요로하지 않는 단순한 프로젝트는 거의 없습니다. Maven은 이러한 많은 것들을 표준 방식으로 처리합니다.

Ant는 기본적으로 XML의 쉘 스크립트입니다 (쉘 명령 대신 Ant 명령 사용).
user253751 2016 년

개미는 엄청난 시간 낭비입니다. maven이 끔찍한 경우에도 더 현명한 선택이었습니다. Ant는 IDE에 통합 할 수있는 방법이 없으며 Java 프로젝트는 파일의 큰 혼란입니다. 파일에서 파일로 바로 이동하는 데 30 %의 시간이 소요됩니다.
bryan hunt

@bryanhunt : 우리는 모든 새로운 프로젝트에 Maven을 사용했습니다. 그러나 Maven이 Java 앱용 배포 패키지를 만드는 좋은 방법을 찾지 못했습니다. (종속성을 복사하고 jar를 업로드하는 데 좋습니다.) 내가 읽은 게시물의 대부분은 Ant 플러그인을 사용한다고 말합니다. 그래서 Maven의 최종 출력을 정리하기 위해 Ant를 사용하고 있습니다. 그리고 Maven Assembly 플러그인을 사용하는 것보다 Ant에서하는 것이 훨씬 쉬운 것 같습니다.
Sam Goldberg

답변:


23

나는 Maven이 내가 본 가장 중요한 프로젝트를 인계 한 것으로 보입니다.

Ant는 유연성이 높지만 빌드 파일은 표준화되지 않았으므로 새 프로젝트 나 회사로 이동할 때 대상 이름이 다르게 지정되고 파일 이름이 다르게 구성되고 대상 간 종속성이 설정되거나 설정되지 않을 수 있습니다.

Maven을 사용하면 SCM 시스템에서 바이너리 의존성 (병에 대해 이야기하고 있음)을 가지고 다닐 필요가 없다는 이점도 있습니다. 다른 많은 훌륭한 Java 도구는 Maven POM 파일을 읽는 방법 (표준화의 이점)을 알고 있으므로 IDE와 같은 도구는 Maven 프로젝트를 매우 빠르게 설정할 수 있으며 Jenkins와 같은 도구는 Maven 빌드를 쉽게 실행할 수 있습니다.


13
또한 Maven을 사용하면 프로젝트를 IDE와 무관하게 만들 수 있으며 IDE 전쟁이 있었던 상점에 가본 적이 있다면이 종교적 전투를 제거 할 수 있습니다!
RonU

11

Ant와 Maven과 함께 일하고 있습니다. 필자의 경험에 따르면 Maven은 Ant보다 매우 우위에 있습니다.

  • 지난 2 ~ 3 년 동안 본 모든 프로젝트는 maven을 사용하는 것으로 보입니다. 약 3 년 전, 그때 사용 된 maven 버전 (2.0.something)이 신뢰할 수없고 버그가있는 것처럼 보였기 때문에 이것이 나를 놀라게했습니다. 어느 시점에서 (2.1 또는 2.2는 기억하지 못합니다) maven은 신뢰할 수있게되었으며 얼마 동안 시간을 ​​보낸 후 마음을 반대쪽으로 바꿨습니다. 지금, 나는 개미보다 개미를 선호하는 사람을 보는 것이 오히려 놀랍습니다.

maven에 대한 덜 긍정적 인 메모에서 문서에 대한 나의 경험은 지금까지 그리 좋지 않았습니다. 필자는 maven보다 문서가 나쁜 제품을 보았지만 어떤 제품 (일부 CSV 라이브러리 iirc)을 기억할 수 없습니다.


2
Dunno, Maven Reference가 꽤 괜찮은 것을 알았습니다 . 완벽하지는 않지만 실제로 문서화되지 않은 어두운 모서리가 있지만 여전히 IMHO는 평균보다 훨씬 낫습니다.
Péter Török

@ PéterTörök 오른쪽 Maven Reference 도 나의 첫 번째 원조입니다. 어쨌든 저를 걱정하는 대부분의 물건들은이 어두운 문서화되지 않은 구석 에서 끝나게됩니다 . 정확하게 말하면이 코너는 "언급되지 않은"것보다 "어두운"것으로 보입니다. 지식이 있다는 느낌이 들지만 해독 할 수는 없습니다. 나는 운이 좋지 않을 수도 있습니다. 아니면 어리석은 것일 수도 있습니다. 아니면 Maven 녀석은 그들의 갱에 괜찮은 기술 작가가 부족할 수도 있습니다
gnat

1
적절한 기술 작가 있는 오픈 소스 프로젝트를 본 적이 있습니까? ;-)
Péter Török

@ PeterTörök 너무 사실이야! :) 인기있는 OSS 프로젝트의 사치품은 문서 작성자를 "교체"하는 전문가가 많이 있다는 것입니다. 저에게는 Maven의 경우였습니다. 까다로운 것에 대해 물어볼 수있는 전문가가 항상있었습니다.
gnat

3

우리는 몇 년 동안 Maven을 사용해 왔습니다. Ant 스크립팅을 지원하므로 Ant가 BeanShell을 지원하는 것처럼 Ant 지식이 여전히 유용 할 수 있습니다. Maven은 훨씬 강력하지만 몇 가지 추가 인프라 요구 사항이 있습니다 (여러 프로젝트간에 구성 요소를 공유하는 경우 Artifactory 또는 Nexus 서버에서 빌드를 호스팅해야 함). Ant와는 상당히 다르기 때문에 기존 지식을 많이 활용할 수 없습니다.


1

나는 개미가 물 속에서 죽었다고 생각합니다. 설정에 따라 모든 클래스 경로 종속성을 수동으로 지정해야하는 것은 너무 수동적이고 오류가 발생하기 쉽습니다. Ant가 Ivy와 같은 종속성 관리 도구와 함께 사용되면 강력한 기능을 유지하고 종속성을 수동으로 관리 할 필요가 없습니다.

Maven과 비교할 때 Ant의 또 다른 문제점은 다른 답변에서 언급 한 표준화 부족입니다. 프로젝트에서 프로젝트 또는 작업으로 이동할 때 가장 성가신 것은 다른 Ant 파일에 대한 새로운 표준을 배워야한다는 것입니다. Maven의 컨피규레이션에 대한 컨벤션 의 목표는 두 개의 서로 다른 프로젝트가 매우 유사한 구조를 가지므로 Ant보다 프로젝트 간 전환이 훨씬 쉽다는 것을 의미합니다.

Ant가 여전히 주류인지 여부는 작업중 인 개발 환경에 달려 있습니다. 프로젝트가 소규모 회사 또는 신생 기업이라면 Maven이 자연스러운 선택이며 시간이 걸릴 수 있다고 생각합니다. Artifactory와 같은 인프라에 투자합니다. 그러나 대기업은 Ant 인프라 (구성, 글로벌 빌드 파일 등)에 수년과 많은 돈을 투자했을 것이므로 많은 돈을 투자 한 기술에서 멀어 질수록 덜 신경을 쓸 것입니다.


0

메이븐은 수년간 상승 해 왔으며 이제는 그것을 배워야합니다. 상황은 항상 변하고 개미가 자신의 위치를 ​​잃고 있다는 것을 아는 것은 나쁜 일이 아닙니다.

Maven은 단기간 동안 만 등장 할 수 있지만, 업무가 더 쉬워지면 배우는 데 시간을 투자 할 가치가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.