これに対する答えはかなり明白であると考えていますが、ここにそれがあります:
学校向けの小さなプロジェクト(Java)で作業しているときは、compileします。
私の小屋では、プロジェクトにbuildにantを使用しています。
コンパイルはビルドのサブセットだと思います。これは正しいです?ビルドとコンパイルの違いは何ですか?
「ビルド」は、ソフトウェアの「成果物」を作成するために必要なすべてのステップをカバーするプロセスです。 Java世界では、これには通常以下が含まれます。
ご覧のとおり、コンパイルはビルドの(小さな)部分にすぎません(ベストプラクティスは、MavenやAntなどのツールを使用してすべてのステップを完全に自動化し、ビルドを継続的に実行することです Continuous統合 )。
私がここで見る答えのいくつかは文脈から外れており、これがC/C++の質問であればより意味があります。
短縮版:
「構築」は、コンパイルを含む全体プロセスを表すgeneric用語です。たとえば、ビルドプロセスには、Javaコードまたはドキュメントファイルを生成するツールが含まれる場合があります。
多くの場合、すべての.classファイルを取得してそれらを.jarに入れる「パッケージ」、または.classファイルと一時ディレクトリを消去する「クリーン」などの追加フェーズがあります。
コンパイルは、ソースコードをオブジェクトコードに変換する行為です。
リンクは、オブジェクトコードとライブラリを生の実行可能ファイルに結合する行為です。
Buildingは、compilingおよびlinkingで構成されるシーケンスであり、他のタスクも含まれる可能性がありますインストーラー作成など。
多くのコンパイラは、ソースコードのコンパイル後にlinkingステップを自動的に処理します。
簡単な言葉で
コンパイルはJavaコード(人間が読める)をバイトコードに変換するので、仮想マシンはそれを理解します。
ビルドは、コンパイルされたすべてのパーツをまとめて実行可能ファイルを作成(ビルド)します。
実際、あなたは同じことをしています。 Antは、ソフトウェアのコンパイルに関連する広範なタスクを実行できるXML構成ファイルに基づいたビルドシステムです。 Javaコードのコンパイルはこれらのタスクの1つです。ファイルのコピー、サーバーの構成、zipとjarのアセンブル、Cなどの他の言語のコンパイルなど、他にも多くのタスクがあります。
ソフトウェアをコンパイルするのにAntは必要ありません。学校で行っているように手動で行うことができます。 Antのもう1つの代替手段は、Mavenと呼ばれる製品です。 AntとMavenはどちらも同じことを行いますが、方法はまったく異なります。
Javaの場合:ビルドは、名前付きフェーズのシーケンスを含むライフサイクルです。
たとえば、Mavenには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.
コンパイルとは、単にソースコードをバイナリに変換することです。ビルドとは、ビルドディレクトリに必要な他のファイルをコンパイルしてリンクすることです。