2008-10-07 5 views
7

좋은 개발자로서 우리는 플랫폼 간의 이식을 돕기 위해 가능한 한 표준을 준수하는 코드를 작성합니다. 그러나 여러 플랫폼에서 일관된 방식으로 코드를 작성하는 데 사용할 수있는 도구는 무엇입니까?크로스 플랫폼 빌드 환경

* nix에서 스크립트 가족 make을 가지고 있지만 윈도우 nmake이 필요합니다.

나는 약 SCons을 읽을 수는 있지만 분노를 사용한 적이있다. 가장 좋아하는 빌드 도구는 무엇이며 왜 효과적이며 제한 사항이 있습니까 ( 플랫폼이 잘못됨 등).

크로스 플랫폼 IDE뿐입니다.

+0

특정 언어를 염두에두고 있습니까? –

+0

나는 당신이 "노기에서"scons를 결코 사용하지 않는다는 것을 말할 때, 당신이 의미하는 무슨을 이해하지 않는다. – grieve

+0

@ grieve : 저는 장난감 프로젝트를 설정하기 위해 문서를 읽었지만 엔터프라이즈 프로젝트에서는 사용하지 않았습니다. –

답변

4

나는 개인적으로 개미, 레이크 및 maven2를 사용합니다. 내가 가장 개미 사용 여러 가지 이유로 큰 그것을 찾을 수 있습니다 : 그것은 (모든 스크립트를 변경하지 않고) 플랫폼의 많은 작동 자바

  • 빌드 파일을 XML로 작성이기 때문에

    • 및 상당히

    • 가 사용할 타사 확장 많이 있습니다

      쉽게 작성할 수 있으며

  • 0

    만약을 위해 플러그인을 쓰기 쉽다 당신은 자바 세계에 있고, 크로스 플랫폼 인 도구가 꽤 있습니다. Apache Ant와 Maven은 모두 Java 용 플랫폼을 기반으로 실행되는 빌드 도구입니다.

    크루즈 컨트롤 (지속적인 통합 도구)도 윈도우와 리눅스 (그것뿐만 아니라 자바로 작성)에서 작동합니다.

    핵심 도구와 관련하여 실제 문제가 없었습니다. 빌드 프로세스 외부에서 발생하는 유일한 문제는 즉, 유물 게시입니다. 시스템마다 다를 수 있으므로 발견했습니다. 그것을 설정하는 한 가지 방법이 없습니다.

    2

    우리는 극단적 인 크로스 개발을, 우리의 코드는 리눅스, 윈도우 CE, 윈도우 2K, 핵 및 UCOS-II에서 실행됩니다. 각각의 환경은 서로 다른 'make'방법론을 사용하기 때문에 (핵 고객 외에서는 코드 워리어 GUI를 통해 컴파일해야합니다.)

    내가 약 2 년 동안 펄과 결합 ANT를 사용하지만이 아닌 유지 보수를 총하는 빌드 스크립트를지도한다.

    이제 우리는 스크립트의 유지 보수성을 높이기 위해 python을 사용하도록 이동했습니다.

    결론은, 난 준비가 만든 도구를 찾아 내 자신을 구축했다하지 않았다. 어쩌면 내가 몇 시간 (2017?) 내 스크립트를 포장하고 배포 할 때 ....

    +0

    크로스 플랫폼에서 작동하는 CI 제품을 찾지 못하셨습니까? – Tim

    +0

    proyect의 크기와 특성에 좌우됨에 따라 자신의 롤링이 최선의 선택이 될 수 있습니다. – WhyNotHugo

    0

    C/C++ 개발의 경우 bakefile이 잘 작동하는 것으로 나타났습니다. 상당히 큰 wxWidgets 프로젝트 (크로스 플랫폼 플랫폼 간 유틸리티 및 UI 라이브러리)는이를 빌드 파일 생성에 사용합니다.

    Bakefile은 크로스 플랫폼, 크로스 컴파일러의 메이크 메이크 생성기입니다.컴파일러에 독립적 인 빌드 작업에 대한 설명을 입력으로 받아 네이티브 makefile (autoconf의 Makefile.in, Visual C++ 프로젝트, Bcc 메이크 파일 등)을 생성합니다.

    Bakefile의 작업은 사람들이 자신이 좋아하는 도구를 계속 사용할 수 있도록 기본 메이크 파일을 생성하는 것입니다. 다른 크로스 플랫폼 솔루션도 있지만, 사용자가 모국어가 아니기 때문에 사용자가 익숙하지 않은 도구 (Boost.Build)를 사용해야하거나 제한적입니다 (qmake).

    0

    Opus Make 또는 MKS Toolkit과 같은 도구가 있으며 멀티 플랫폼 및 지원을 제공합니다. make 스크립트의 코드베이스가 이미 있다면, 거기에 쉽게 마이그레이션 할 수 있습니다. 나는 당신이 DDJ 잡지의 광고에서 비슷한 도구를 사냥 해왔다고 생각합니다.

    0

    우리는 지난 18 개월 동안 Linux, Windows 및 Mac 용 Java 환경을 실행 해 왔습니다.

    • Maven 2가 빌드를 구동하므로 여기에서 일관성있는 작업을 수행하는 것이 매우 쉽습니다. M2 플러그인이 트레드를 감히하지 않는 곳에서는 작은 앤트 스크립트를 사용합니다.
    • 우리는 이클립스를 사용하고 있습니다. & IDEA - 둘 다 물론 멀티 플랫폼입니다.
    • 테스트 - JUnit, Fitnesse, Fest - 모두 멋지게 멀티 플랫폼.
    • 릴리스 스크립트는 Ruby로 작성되었습니다. 여기에 Windows와 관련된 문제가 좀 있지만 일반적으로 경로를 필요한대로 변환하는 기능이 트릭입니다.
    • TeamCity는 CI를 사용합니다. 우리는 실제로 이것을 Windows에서 Linux로 마이그레이션했으며 전혀 오류가 발생하지 않았습니다. 아주 좋은 패키지입니다.

    우리는 한동안 GWT를 사용했는데 이로 인해 우리에게 많은 고통이있었습니다. 그렇게 스윙을하면 조심하십시오.

    +0

    gwt 및 크로스 플랫폼 컴파일과 관련된 문제에 대해 자세히 설명 하시겠습니까? – WhyNotHugo