Создание против компиляции (Java)
Подумав, что ответ на это довольно очевиден, но здесь он идет:
Когда я работаю над небольшим проектом для школы (в java), я его компилирую.
В моем кооперативе мы используем ant для создания нашего проекта.
Я думаю, что компиляция является подмножеством здания. Это верно? В чем разница между построением и компиляцией?
Связанный:
В чем разница между компиляцией и построением?
Ответы
Ответ 1
"Build" - это процесс, который охватывает все шаги, необходимые для создания "поставляемой" вашей программы. В мире Java это обычно включает в себя:
- Генерация источников (иногда).
- Компиляция источников.
- Компиляция источников тестов.
- Выполнение тестов (модульные тесты, интеграционные тесты и т.д.).
- Упаковка (в банку, войну, ejb-jar, ухо).
- Выполнение проверок работоспособности (статические анализаторы, такие как Checkstyle, Findbugs, PMD, тестовое покрытие и т.д.).
- Создание отчетов.
Итак, как вы можете видеть, компиляция - это только небольшая часть сборки (и лучше всего полностью автоматизировать все этапы с помощью таких инструментов, как Maven или Ant, и постоянно запускать сборку, которая известна как Непрерывная интеграция).
Ответ 2
Некоторые из ответов, которые я вижу здесь, являются вне контекста и имеют больше смысла, если это вопрос C/С++.
Краткая версия:
- "Компиляция" превращает файлы .java в файлы .class.
- "Строительство" - это общий термин, который включает компиляцию и другие задачи.
"Building" - это общий термин, описывающий общий процесс, который включает компиляцию. Например, процесс сборки может включать инструменты, которые генерируют Java-код или файлы документации.
Часто бывают дополнительные этапы, такие как "пакет", который принимает все ваши .class файлы и помещает их в .jar или "clean", который очищает файлы .class и временные каталоги.
Ответ 3
Компиляция - это преобразование исходного кода в код объекта.
Связывание - это комбинация объектного кода с библиотеками в необработанный исполняемый файл.
Строка - это последовательность, состоящая из компиляции и ссылок, с возможными другими задачами, такими как создание установщика.
Многие компиляторы обрабатывают шаг привязки автоматически после компиляции исходного кода.
В чем разница между кодом компиляции и исполняемым кодом?
Ответ 4
Простыми словами
Компиляция переводит Java-код (человеческий читаемый) в байт-код, поэтому Виртуальная машина понимает это.
Здание ставит все скомпилированные части вместе и создает (строит) исполняемый файл.
Ответ 5
На самом деле вы делаете то же самое. Ant - это система сборки на основе файлов конфигурации XML, которые могут выполнять широкий спектр задач, связанных с компиляцией программного обеспечения. Компиляция вашего java-кода является лишь одной из этих задач. Есть много других, таких как копирование файлов, настройка серверов, сборка почтовых индексов и баннеров и компиляция других языков, таких как C.
Вам не нужно Ant для компиляции вашего программного обеспечения. Вы можете сделать это вручную, как вы делаете в школе. Другой альтернативой Ant является продукт под названием Maven. Оба Ant и Maven делают то же самое, но совершенно по-другому.
Поиск Ant и Maven для более подробной информации.
Ответ 6
Компиляция просто преобразует исходный код в двоичный, сборка компилирует и связывает любые другие файлы, необходимые в каталоге сборки
Ответ 7
TL;DR;
- Build - это скомпилированная версия программы.
- Компилировать означает, конвертировать (программу) в машинный код или нижний уровень, в котором программа может быть выполнена.
В Java: Build - это жизненный цикл, содержащий последовательность названных фаз.
например: maven имеет три цикла жизненного цикла, следующий - 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.