이것에 대한 대답은 매우 분명하지만 여기에 있습니다.
학교 (자바)를위한 작은 프로젝트를 진행할 때 컴파일 합니다.
내 차장에서 우리는 프로젝트 를 빌드 하기 위해 개미를 사용 하고 있습니다.
컴파일은 건물의 일부라고 생각합니다. 이 올바른지? 빌드와 컴파일의 차이점은 무엇입니까?
이것에 대한 대답은 매우 분명하지만 여기에 있습니다.
학교 (자바)를위한 작은 프로젝트를 진행할 때 컴파일 합니다.
내 차장에서 우리는 프로젝트 를 빌드 하기 위해 개미를 사용 하고 있습니다.
컴파일은 건물의 일부라고 생각합니다. 이 올바른지? 빌드와 컴파일의 차이점은 무엇입니까?
답변:
"빌드"는 소프트웨어의 "제공 가능"을 작성하는 데 필요한 모든 단계를 포함하는 프로세스입니다. Java 세계에서는 일반적으로 다음이 포함됩니다.
보시다시피, 컴파일은 빌드의 작은 부분 일뿐입니다 (그리고 가장 좋은 방법은 Maven 또는 Ant와 같은 도구를 사용하여 모든 단계를 완전히 자동화하고 Continuous Integration으로 알려진 빌드를 지속적으로 실행하는 것입니다 ).
내가 볼 수있는 답변 중 일부는 맥락이 맞지 않으며 이것이 C / C ++ 질문이라면 더 의미가 있습니다.
짧은 버전 :
"빌딩"은 컴파일을 포함하는 전체 프로세스를 나타내는 일반적인 용어 입니다. 예를 들어, 빌드 프로세스에는 Java 코드 또는 문서 파일을 생성하는 도구가 포함될 수 있습니다.
모든 .class 파일을 가져 와서 .jar에 넣는 "package"또는 .class 파일과 임시 디렉토리를 정리하는 "clean"과 같은 추가 단계가있을 수 있습니다.
컴파일 은 소스 코드를 객체 코드로 변환하는 작업입니다.
링크 는 객체 코드와 라이브러리를 원시 실행 파일로 결합하는 작업입니다.
빌드 는 설치 및 생성과 같은 다른 작업과 함께 컴파일 및 링크 로 구성된 시퀀스 입니다.
많은 컴파일러가 소스 코드를 컴파일 한 후 링크 단계를 자동으로 처리합니다 .
실제로 당신은 같은 일을하고 있습니다. Ant는 소프트웨어 컴파일과 관련된 광범위한 작업을 수행 할 수있는 XML 구성 파일을 기반으로하는 빌드 시스템입니다. 자바 코드를 컴파일하는 것은 그러한 작업 중 하나 일뿐입니다. 파일 복사, 서버 구성, zip 및 jar 조합, C와 같은 다른 언어 컴파일과 같은 다른 많은 것들이 있습니다.
소프트웨어를 컴파일하기 위해 Ant가 필요하지 않습니다. 학교에서하는 것처럼 수동으로 할 수 있습니다. Ant의 또 다른 대안은 Maven이라는 제품입니다. Ant와 Maven은 모두 똑같은 방식으로 작동하지만 상당히 다른 방식으로 수행됩니다.
Java에서 : 빌드는 수명주기에 명명 된 단계 시퀀스를 포함합니다.
예를 들어 : 빌드 수명주기가 3 개인 경우 다음은 default
빌드 수명주기입니다.
◾validate - validate the project is correct and all necessary information is available
◾compile - compile the source code of the project
◾test - test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
◾package - take the compiled code and package it in its distributable format, such as a JAR.
◾integration-test - process and deploy the package if necessary into an environment where integration tests can be run
◾verify - run any checks to verify the package is valid and meets quality criteria
◾install - install the package into the local repository, for use as a dependency in other projects locally
◾deploy - done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.
컴파일은 소스 코드를 바이너리로 변환하고 빌드는 컴파일하고 필요한 다른 파일을 빌드 디렉토리에 링크합니다.