Makefile für Java
![]() | Wie viele von Ihnen haben Java-Programmierer, um Programme zu kompilieren Probleme hatte? Bibliotheken aus $ CLASSPATH, Parametern, die an der Java-Compiler km. Auch die Verwendung von Entwicklungsumgebungen für Java, sieht die Situation kaum verbessert. Wir verbringen viel Zeit, um paramteri gesetzt und jedes Mal, wenn Sie die Zusammenstellung immer fehlt etwas! |
Sie können all diese Probleme nur durch die Organisation der Java-Quellcode und mit Hilfe eines Makefile für diesen Zweck geschrieben zu vermeiden.
Was ist ein Makefile
Ein Makefile ist eine Datei, die Schritte, um efftuare auf die Dateien, die wir den Baum und alle ihre Abhängigkeiten erhalten Sie beschreibt. Es ist allgemein in Unix verwendet-basierten Plattformen und können verwendet werden, um jede Art Programm zusammenzustellen. Das Hilfsprogramm make interpretiert das makefile und den Quellcode für ausführbare Programme und Bibliotheken kompilieren.
Vorteile der Verwendung von make
Viele von Ihnen sind mit einem Makefile für jedes Java-Projekt aus dem einfachen Grund, dass das Makefile muss alle Abhängigkeiten zwischen Dateien, die variiert sicherlich von Projekt zu Projekt angeben skeptisch. Also sollten wir schreiben ein Makefile für jeden einzelnen unseres Projekts. Diese Grenze kann durch Eingabe eines generischen Makefile, das alle Abhängigkeiten für das Projekt berechnen kann überwunden werden, vervollständigt werden, um auf das gleiche Skript für alle Projekte ohne moficare nichts in das Makefile zu verwenden.
Sicherlich nicht zu vernachlässigen Vorteil ist die Fähigkeit zu machen nur das, was Sie ausfüllen müssen. Bitte vermeiden Sie das tun, was ist schon fertig und hat nicht mit einer erheblichen Einsparung von Zeit geändert worden ist.
Mit einem einzigen Makefile können Sie alle Quellen für das Projekt zu erstellen.
How to use
Das Makefile, dass ich schrieb zu bauen Java-Projekte können ohne Änderung für Projekte, die auf ein bestimmtes Verzeichnis-Struktur angewendet werden. Die Java-Quelle sollte ein Verzeichnis für i. Java, eine für Dateien. Klasse, und ein Glas für die Bibliotheken.
Beispiel:
| - Src | `- Main | | - Java | | `- Com | | `- Beispiel | | | - ExampleA.java | | | - ExampleB.java | | `- ExampleC.java | `- Ressourcen | `- Res.java | - Klassen | - Libs | | - General | | | - Database | | | | - DB1.jar | | | `- DB2.jar | `- Logging | `- Log.jar | - Jars
Um es nutzen, so schreiben Sie einfach den folgenden Code in das Makefile in das Root-Verzeichnis des Projekts, stellen Sie sicher, dass der Name des Verzeichnisses, das ist in der Datei (für Klassen angegeben. Klasse, denn src. Libs für Java und Glas) und starten Sie die Befehl make
Das ist alles. Wenn wir wollen auch ein Glas mit dem gesamten Projekts führen Sie einfach make && make jar
Makefile
# # Makefile # Autor: Danilo Abbasciano # # Geben Sie hier die Verzeichnisse für Klassen und Quellen CLASS_DIR = Klassen SOURCE_DIR src = JARS_DIR Gläser = find $ ( SOURCE_DIR ) - name "*.java" - printf % h\\n | sort | uniq | sed 's/$(SOURCE_DIR) \/ \? //' ) SUBDIRS: = $ (shell find $ (SOURCE_DIR) - name "*. java" - printf% h \ n | sort | uniq | sed 's / $ (SOURCE_DIR) \ / \? / /') local / java / bin JAVA_HOME = / usr / local / java / bin Field #-Compiler # JDEBUGFLAGS =- g-Abwertung # JDEBUGFLAGS =- O-hängen-nowarn ) / javac JCC = $ (JAVA_HOME) / javac clean classes compile jar . PHONY: sauber kompilieren jar-Klassen alle: SUBDIRS ) ; do \ @ @ Für p in $ (SUBDIRS); do \ p ; \ echo 'kompilieren' $ $ p; \ $$ p ; \ Export SUBD = $ $ p; \ print - directory compile ; \ machen - ohne - Drucken - neues Verzeichnis \ getan Sauberkeit: f * ~ *. class *. bak $ ( foreach dir ,$ ( SUBDIRS ) ,$ ( CLASS_DIR ) /$ ( dir ) /*. class ) - Rm - f * ~ *. bak *. class $ (foreach dir, $ (SUBDIRS), $ (CLASS_DIR) / $ (dir) / *. class) ) /$ ( SUBDIR ) LOCAL_CLASS_DIR = $ (CLASS_DIR) / $ (SubD) ) /$ ( SUBDIR ) LOCAL_SOURCE_DIR = $ (SOURCE_DIR) / $ (SubD) JAR: ) ; jar - cf ../$ ( JARS_DIR ) / project . jar * cd $ (CLASS_DIR); jar - cf .. / $ (JARS_DIR) / Projekt. jar * kompilieren: Klassen # Dir Zielklasse erstellen, wenn nicht vorhanden. ) : $ (LOCAL_CLASS_DIR): LOCAL_CLASS_DIR ) mkdir - p $ (LOCAL_CLASS_DIR) Neue Regel # für Java . SUFFIXES: java . class . SUFFIXES:. Java. Klasse # Magical Befehl, der zu machen class-Dateien in einem anderen R. finden class $ ( LOCAL_CLASS_DIR ) vpath%. Klasse $ (LOCAL_CLASS_DIR) java $ ( LOCAL_SOURCE_DIR ) vpath%. java $ (LOCAL_SOURCE_DIR) # Classpath, alle in. / Gläser und. / Libs ) :$ ( SOURCE_DIR ) :$ ( subst . jar ,. jar :,$ ( wildcard libs /*. jar libs /*/*. jar libs /*/*/*. jar jars /*. jar ) ) LIBCLASSPATH: = $ (CLASS_DIR): $ (SOURCE_DIR): $ (subst. Jar,. Jar:, $ (wildcard libs / *. jar jar libs libs /*/*. /*/*/*. jar jars / * . jar)) # Compil Befehl class : . Java. Klasse: ) $ ( JCC ) - nowarn - d $ ( CLASS_DIR ) $ ( JDEBUGFLAGS ) $< CLASSPATH = $ (LIBCLASSPATH) $ (JCC) - nowarn - d $ (CLASS_DIR) $ (JDEBUGFLAGS) $ < # Finden Sie heraus, die Zieldateien $ ( LOCAL_SOURCE_DIR ) /*. java ) PATHFILES = $ (wildcard $ (LOCAL_SOURCE_DIR) / *. java) $ ( LOCAL_SOURCE_DIR ) /,,$ ( PATHFILES ) ) FILES = $ (subst $ (LOCAL_SOURCE_DIR) /,, $ (PATHFILES)) java =. class ) Klassen: $ (FILES:. java =. class)
Gute Zusammenstellung.















One Response to "Makefile für Java"
thegamer - 28. August 2009
Ich viel lieber Ameise!
Sie sollten es versuchen ...
Lassen Sie eine Antwort