Erstellen vs. Kompilieren (Java)

Lesezeit: 5 Minuten

Benutzer-Avatar
Sixtyfooter, Typ

Ich denke, dass die Antwort darauf ziemlich offensichtlich ist, aber hier ist sie:

Wenn ich an einem kleinen Projekt für die Schule (in Java) arbeite, habe ich kompilieren es.

In meinem Hühnerstall verwenden wir ant to bauen unser Projekt.

Ich denke, dass das Kompilieren eine Teilmenge des Bauens ist. Ist das richtig? Was ist der Unterschied zwischen Bauen und Kompilieren?

Verwandt:

Was ist der Unterschied zwischen kompilieren und bauen?

Benutzer-Avatar
Pascal Thivent

Der „Build“ ist ein Prozess, der alle Schritte abdeckt, die erforderlich sind, um ein „Lieferergebnis“ Ihrer Software zu erstellen. In der Java-Welt umfasst dies typischerweise:

  1. Generieren von Quellen (manchmal).
  2. Quellen zusammenstellen.
  3. Kompilieren von Testquellen.
  4. Ausführen von Tests (Unit-Tests, Integrationstests usw.).
  5. Verpackung (in Glas, Krieg, Ejb-Glas, Ohr).
  6. Durchführen von Zustandsprüfungen (statische Analyseprogramme wie Checkstyle, Findbugs, PMD, Testabdeckung usw.).
  7. Berichte erstellen.

Wie Sie sehen können, ist das Kompilieren nur ein (kleiner) Teil des Builds (und die beste Vorgehensweise besteht darin, alle Schritte mit Tools wie Maven oder Ant vollständig zu automatisieren und den Build kontinuierlich auszuführen, was als Kontinuierliche Integration).

  • Warum es „Continuous Integration“ statt „Continuous Building“ nennen?

    – Quazi Irfan

    18. Juni 2016 um 22:57 Uhr

  • @ Pascal, Re “Build kontinuierlich ausführen”.. “das bauen” bezieht sich auf?

    – Schrittmacher

    3. August 2016 um 20:54 Uhr


  • @Pacerier “the build” bezieht sich auf alle Schritte 1.-7.; “Kontinuierlich” bedeutet nicht, dass Sie mit dem nächsten Build sofort beginnen, nachdem der erste fertig ist, sondern nur bei Änderungen im Projekt.

    – Michelek

    3. Oktober 2017 um 7:13 Uhr


  • und wenn es Quellen generiert, wie Sie im ersten Punkt erwähnt haben (Generieren von Quellen (manchmal).)

    – Deepak Gupta

    15. Juli 2018 um 9:12 Uhr

  • @QuaziIrfan Weil Sie überprüfen, ob sich Ihr neuer oder aktualisierter Code in die vorhandene Codebasis integriert. Das heißt, dass Ihre Änderungen kompiliert werden, dass sie den Programmierstandards und -anforderungen des Teams entsprechen, dass die grundlegende Funktionalität gut ist und dass sie den aktuellen guten Build nicht beeinträchtigen. Mit anderen Worten, dass sich Ihre Updates gut in die vorhandene Codebasis integrieren lassen. HTH

    – Rob Wells

    26. Oktober 2020 um 17:40 Uhr

Einige der Antworten, die ich hier sehe, sind aus dem Kontext gerissen und machen mehr Sinn, wenn es sich um eine C/C++-Frage handeln würde.

Kurzfassung:

  • “Kompilieren” wandelt .java-Dateien in .class-Dateien um
  • „Building“ ist ein allgemeiner Begriff, der das Kompilieren und andere Aufgaben umfasst.

“Gebäude” ist ein generisch Begriff beschreibt die gesamt Prozess, der das Kompilieren umfasst. Beispielsweise kann der Erstellungsprozess Tools enthalten, die Java-Code oder Dokumentationsdateien generieren.

Oft gibt es zusätzliche Phasen, wie “package”, das alle Ihre .class-Dateien nimmt und sie in eine .jar-Datei legt, oder “clean”, das .class-Dateien und temporäre Verzeichnisse bereinigt.

Benutzer-Avatar
Kaili

Kompilieren ist die Umwandlung von Quellcode in Objektcode.

Verknüpfung ist der Akt des Kombinierens von Objektcode mit Bibliotheken zu einer rohen ausführbaren Datei.

Gebäude ist die Folge bestehend aus kompilieren und verlinkenmit möglicherweise anderen Aufgaben wie der Erstellung des Installationsprogramms.

Viele Compiler behandeln die verlinken Schritt automatisch nach dem Kompilieren des Quellcodes.

Was ist der Unterschied zwischen Kompiliercode und ausführbarem Code?

  • Einige andere mögliche Aufgaben: Erweitern (JDO), Javadoc-ing, Packen und Signieren. Darüber hinaus beinhalten einige Umgebungen das Ausführen automatisierter Einheiten-/Regressionstests als Teil eines „Builds“.

    – Bert F

    16. April 2010 um 3:32 Uhr

  • Normalerweise gibt es beim Erstellen von Java-Projekten keinen Verknüpfungsschritt, und es wird keine ausführbare Rohdatei erstellt. Stattdessen werden die kompilierten Klassen als Teil des Builds zusammen in eine JAR-Datei gepackt. (Oder .war oder .ear, je nach Zielumgebung.)

    – Markus

    16. April 2010 um 5:12 Uhr

  • Was sind “rohe ausführbare Dateien”?

    – Ealeon

    23. Juli 2013 um 18:15 Uhr

  • Die Tüte mit Bits, die für sich genommen im Grunde nutzlos ist, ohne mit den anderen Bibliotheken vermischt zu werden, die sie benötigt. Es ist wie ein Schokoladenkuchen. Ohne Mehl und Eier usw. ist der Kakao nur Rohkakao.

    – Kaili

    31. Juli 2013 um 19:45 Uhr

Benutzer-Avatar
Tom

In einfachen Worten

Die Kompilierung übersetzt Java-Code (vom Menschen lesbar) in Bytecode, damit die virtuelle Maschine ihn versteht.

Building fügt alle kompilierten Teile zusammen und erstellt (baut) eine ausführbare Datei.

Benutzer-Avatar
Premraj

  • Bauen ist eine kompilierte Version eines Programms.
  • Kompilieren bedeutet, (ein Programm) in einen Maschinencode oder eine niedrigere Form umwandeln, in der das Programm ausgeführt werden kann.

Auf Java: Build ist ein Lebenszyklus, der eine Abfolge benannter Phasen enthält.

Zum Beispiel: maven hat drei Build-Lebenszyklen, der folgende ist default Lebenszyklus aufbauen.

◾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.

Benutzer-Avatar
Drekka

Eigentlich machst du das Gleiche. Ant ist ein Build-System, das auf XML-Konfigurationsdateien basiert und eine Vielzahl von Aufgaben im Zusammenhang mit der Kompilierung von Software ausführen kann. Das Kompilieren Ihres Java-Codes ist nur eine dieser Aufgaben. Es gibt viele andere, wie das Kopieren von Dateien, das Konfigurieren von Servern, das Zusammenstellen von Zips und JARs und das Kompilieren anderer Sprachen wie C.

Sie brauchen Ant nicht, um Ihre Software zu kompilieren. Sie können es manuell tun, wie Sie es in der Schule tun. Eine weitere Alternative zu Ant ist ein Produkt namens Maven. Sowohl Ant als auch Maven machen dasselbe, aber auf ganz unterschiedliche Weise.

Sieh nach oben Ameise und Maven für mehr Details.

Benutzer-Avatar
Sam

In Eclipse und IntelliJ besteht der Build-Prozess aus den folgenden Schritten: Bereinigen der vorherigen Pakete, Validieren, Kompilieren, Testen, Paketieren,
integrieren, überprüfen, installieren, bereitstellen.

1344430cookie-checkErstellen vs. Kompilieren (Java)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy