2009-06-02 6 views
1

최근에 개미 스크립트로 저글링을하고 나면 더 나은 것이 있는지 궁금해지기 시작했습니다.적절한 종속성 처리를 사용하는 Java 빌더

나를 위해 필요한 모든 .java 파일을 다시 컴파일해야한다는 것을 알고있는 빌더가 필요합니다.

예 : 은이 구조

public class A { ] 
public class B extends A {} 
public class C { 
    B b; 
} 
  1. 을 위해 : 단지 B를 다시 컴파일 알 B 변경, 컴파일 ('C') : 컴파일 ('C')를 A, 들어 B, C.
  2. 를 컴파일 알 .

나는 우리의 현재 자바 빌더 인 개미의 연장처럼 보이는 Ivy을 알고있다. Scons 우리가 현재 C++ 코드를 작성하는 데 사용하고있는 scons는 C 코드에 대해 위에서 설명한 동작을 수행하는 데 우수합니다. 다음 Maven의보고는 almost but not quite there입니다.

무엇을 제안하겠습니까? 시스템을 구축하기 위해 Free Software/Commercial을 사용하는 도구는 무엇입니까?

고맙습니다. Maxim.

답변

0

받는다는 모두 내 개인 및 내 상용 제품이 간 수준의 종속성을 설명 귀하의 질문에

0

합니다. 대부분의 빌드 시스템, 특히 Maven은 프로젝트 간 의존성을 더욱 목표로합니다. 대부분의 시스템은 프로젝트의 모든 클래스를 다시 컴파일하기 때문에 이러한 빌드 시스템의 장점은 가능한 한 적은 수의 프로젝트를 구축하는 것입니다.

Maven과 Ivy를 사용하면 의존하는 프로젝트 버전을 포함하여 프로젝트의 외부 및 내부 종속성을 쉽게 지정할 수 있습니다. 그들은 또한 외부 라이브러리 (예 : apache commons)를 빌드 프로세스의 일부로 로컬 시스템에 자동으로 다운로드합니다 (아직 로컬로 캐시되지 않은 경우). 타사 jar 파일을 수동으로 다운로드하고 구성하는 작업이 많이 절약됩니다.

아이비는 당신이 언급 한 것처럼 개미의 확장입니다. 나는 Maven을 추천한다. 나는 성공적으로 사용했고 컨셉이 아주 성숙한 컨벤션 중심의 빌드 시스템입니다. 메이븐 (Maven)은 사용하기에 훨씬 적은 노력을 요구하며, 꽤 확장 가능하다.

+0

다시 IDEA의 IDE에서, '확인'

  • 켜져 새 프로젝트를 시작, 내가 메이븐이 요구하는 동의 덜 선행 노력. 기존 프로젝트 (예 :이 프로젝트)의 경우 Ivy는 간단히 "플러그 인"될 수 있지만 Maven은 일반적으로 기대에 맞게 * 더 많은 초기 노력이 필요합니다. 이것은 대회에 대한 엄격한 준수의 축복이자 저주입니다. –

  • 1

    담쟁이, scons 또는 maven은 언급 한대로 문제를 해결하는 데 도움이되지 않습니다.

    1. "for for 컴파일 ('C') '이란 무엇을 의미합니까? 나는 당신이 당신의 개미 파일에 가지고 있다고 생각하지 않습니다.
    2. 이 경우 Ant는 원하는대로 작동해야합니다. 기본 동작을 설명했습니다. 동일한 javac 요소에서 Ant는 변경된 클래스 만 다시 컴파일합니다. javac 작업에 대한 항목은 Ant manual이며 특히 'includeDestClasses'속성을 참조하십시오.

    부적절한 예제 ant 파일을 게시해야합니다.담쟁이 받는다는 대 :

    관련 문제