Zwei unterschiedliche JAR Dateien mit ANT erstellen

Meisenmann

Mitglied
Hi,

ich brauche für meine API eine interne und eine externe Implementierung (JARs). Die API soll gegenseitig austauschbar sein, ohne am Quellcode etwas ändern zu müssen. Beide JARs (intern und extern) müssen also die gleichen Klassen mit unterschiedlichen Implementierungen beinhalten:

api-intern.jar -> A.java (Implementierung intern), B.java (Implementierung intern), ...
api-extern.jar -> A.java (Implementierung extern), B.java (Implementierung extern), ...

Kann ich soetwas mit ANT bewerkstelligen, dass ANT zwei JARs (intern und extern) für mich erstellt?
Ich habs nicht hinbekommen.

Danke und viele Grüße,
Meisenmann
 

Joose

Top Contributor
Wenn du etwas austauschbar machen willst ohne am Quellecode etwas zu ändern dann solltest du gegen Interfaces Programmieren, die geben Methoden(namen) vor. Die Implementierung dahinter kann dann über eine Config festgelegt werden.
==> Dependency Injection
Damit kann man in Anwendungen ganz leicht Implementierungen gegen andere austauschen.

Ich weiß auch nicht wo das Problem mit ANT liegt ... die hast anscheinend 2 unterschiedliche Projekte.
Also kann man ganz einfach 2 JARs daraus machen (mit den von dir gewünschten Namen).
Was genau hat bei deinen Versuchen denn nicht geklappt?
 
Zuletzt bearbeitet:

Meisenmann

Mitglied
Danke für Deine Antwort, Joose.

Die externe JAR darf den Code der internen JAR aus Sicherheitsgründen nicht beinhalten. Deshalb kann ich nicht über eine Konfigurationsdatei gegen Interfaces implementieren. Ich brauche für beide JARs separate Implementierungen meiner Klassen, die jeweils nicht im anderen JAR verfügbar sein darf.

Zu meinem Vorgehen:

Ich habe mein Projekt in zwei Packages (intern und extern) aufgeteilt. Beide Packages enthalten die gleichen Klassen mit unterschiedlichen Implementierungen. Nun möchte ich daraus zwei JARs erzeugen: Inhalt vom Package intern in JAR intern und Inhalt von Package extern in JAR extern.

Das habe ich über die build.xml nicht hinbekommen, weil dann die package-Struktur der Packages unterschiedlich ist.
 

Joose

Top Contributor
Ich verstehe schon was du mit dem ANT bezwecken willst usw.
Aber was ich nicht verstehe: Du hast anscheinend 2 unterschiedliche Projekte die exakt gleich aufgebaut sind (was Klassen, Methoden und Packages angeht) und sich eben nur in der Implementierung unterscheiden. In was unterscheiden sich der Context? Ist die interen für auch in der Firma und die externe für Kunden?

Die externe JAR darf den Code der internen JAR aus Sicherheitsgründen nicht beinhalten.
Und warum hast du dann beides in einem Projekt? Wenn sich die beiden Implementierungen nicht kennen dürfen teile es doch auf mehrere Projekt auf.
Mach doch ein "Basis" Projekt für alle Gemeinsamkeiten und dann jeweils ein Projekt für die interne Implementierung und ein Projekt für die externe Implementierung. Wenn ich etwas in ein Projekt gebe gehört es auch zusammen!
 

Meisenmann

Mitglied
Ist die interen für auch in der Firma und die externe für Kunden?

Die interne ist für mich und die externe für alle anderen. Ich finde es nur praktisch wenn alles in einem Projekt zusammengefasst ist. Ich dachte dass es vielleicht eine Möglichkeit ein neues Package zu erstellen, dort alle Alternativimplementierungen abzulegen und dann mit ANT zwei JARs zu erzeugen.

Aber so wie es aussieht ist das nicht möglich, oder habe ich dich falsch verstanden?
 

Joose

Top Contributor
Ich wüsste nicht wie habs auch noch nie probiert.
Aber ich sehe auch keinen Grund dazu ich würde einfach die Projekte entsprechend aufsplitten.
Der Vorteil besteht dann auch darin das du den Source Code für die externe Implementierung weitergeben kannst ohne die interne Implementierung weiterzugeben.
 

Meisenmann

Mitglied
Ok, danke für deine Hilfe.

Eine kurze Frage habe ich noch: Gibt es eine Möglichkeit in NetBeans 8.0 ein Hauptprojekt (Klassen mit gemeinsamer Implementierung) und zwei Unterprojekte (Klassen mit unterschiedlichen Implementierungen) anzulegen? Ideal wäre es, wenn ich beide Projekte mit einem Knopfdruck builden und kompilieren könnte.

viele Grüße,
Meisenmann
 

Joose

Top Contributor
Eine kurze Frage habe ich noch: Gibt es eine Möglichkeit in NetBeans 8.0 ein Hauptprojekt (Klassen mit gemeinsamer Implementierung) und zwei Unterprojekte (Klassen mit unterschiedlichen Implementierungen) anzulegen?

Da ich nicht NetBeans sondern Eclipse verwende kann ich hier keine Aussage tätigen
Soweit ich es in Eclipse weiß geht das nicht und braucht man auch nicht.
Einfach 3 Projekte und das Common Projekt mit den gemeinsamen Sachen wird bei den anderen jeweils im BuildPath eingetragen.

Ideal wäre es, wenn ich beide Projekte mit einem Knopfdruck builden und kompilieren könnte.

In Eclipse könnte man dafür dann Maven oder ein einfaches ANT Skript verwenden.

(Analog dazu funktioniert das auch Netbeans, ob Netbeans aber etwas eigenes einfacheres anbietet kann ich dir nicht sagen)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Text aus einer Textdatei rausholen, der zwischen zwei Schlüsselworten steht Allgemeine Java-Themen 4
D Zwei Listen vergleichen Allgemeine Java-Themen 7
Tobero Wie berechnet man ob zwei Linien sich schneiden? Allgemeine Java-Themen 2
kodela Zwei gleichzeitig gedrückte Steuertasten Allgemeine Java-Themen 10
X Bedingung zwei mal überprüfen Allgemeine Java-Themen 4
Zrebna Random Number - Generische Formel zwischen zwei INKLUSIVEN Werten Allgemeine Java-Themen 16
D Input/Output Zwischen zwei ID-Räumen unterscheiden und Objekt löschen Allgemeine Java-Themen 16
D OOP Gemeinsamen ID-Raum für zwei Klassen implementieren Allgemeine Java-Themen 7
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
S Kann man Variablen oder Felder definieren deren Typ zwei Interfaces ist..? Allgemeine Java-Themen 9
K Aus String zwei Jahreszahlen auslesen Allgemeine Java-Themen 18
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
VfL_Freak Double mit zwei festen NK-Stellen ausgeben Allgemeine Java-Themen 9
Neoline Methoden Zwei Arrays abwechselnd zusammenführen Allgemeine Java-Themen 15
J Zwei Wavdateien gleichzeitig mit SourceDataLine abspielen Allgemeine Java-Themen 0
D Best Practice Die niedrigste Differenz zwischen zwei Listen ermitteln. Allgemeine Java-Themen 10
J Fahrroute zwischen zwei Punkten finden Allgemeine Java-Themen 1
J Kollision von zwei Kreisen Allgemeine Java-Themen 15
J Transfer von Integer zwischen zwei Clients - RMI Allgemeine Java-Themen 4
S Variablen split-Funkton mit zwei Variabeln verwenden? Allgemeine Java-Themen 4
T Alle Kombinationen aus zwei Arrays Allgemeine Java-Themen 8
G Liste zwischen zwei Kalenderdaten erstellen Allgemeine Java-Themen 3
AssELAss Zwei Arrays / ArrayLists inhaltlich vergleichen Allgemeine Java-Themen 2
H RegularExpression zwischen zwei Strings Allgemeine Java-Themen 2
P Zwei Applikationen mit einem Job Allgemeine Java-Themen 0
A Lineare Interpolation mit zwei Arrays Allgemeine Java-Themen 4
E Berechnung des Schnittpunktes von zwei Geraden Allgemeine Java-Themen 1
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
G Matrix reduzieren zwei Methoden Allgemeine Java-Themen 2
Dechasa Vergleichen von zwei Arrays Allgemeine Java-Themen 4
P Zwei ArrayLists: Ohne die eine überhaupt anzurühren, wird sie verändert Allgemeine Java-Themen 2
S Anwendung zum ausrechnen der Differenz von zwei Tagen Allgemeine Java-Themen 9
F Zwei LinkedHashMaps iterieren und vergleichen Allgemeine Java-Themen 2
B Fehler beim Auslesen von Einstellungen. Zwei ähnliche Blöcke, nur eins geht. Allgemeine Java-Themen 5
L Zwei Files miteinander vergleichen und Grafisch darstellen Allgemeine Java-Themen 1
T Zwei Wortendungen vergleichen ohne .equals Allgemeine Java-Themen 10
F Webstart zwei Java Versionen / aktivieren bzw deaktivieren Allgemeine Java-Themen 2
S Zwei Comparable (compareTo) vergleichen Allgemeine Java-Themen 6
E zwei Gleitkommazahlen durcheinander dividieren Allgemeine Java-Themen 2
X Generic muss zwei Klassen/Interfaces erfüllen Allgemeine Java-Themen 5
turmaline OOP zwei gleiche Methoden mit kleinen Unterschieden Allgemeine Java-Themen 15
C Threads Zwei Threads greifen auf LinkedList zu. Allgemeine Java-Themen 12
T Wie heißt ein Binärbaum, dessen Knoten immer zwei Kinder haben müssen? Allgemeine Java-Themen 2
C ActionListener zwei Buttons zuweisen Allgemeine Java-Themen 11
M Eclipse drei slashs durch zwei ersetzen? Allgemeine Java-Themen 3
1 zwei Strings vergleichen Allgemeine Java-Themen 16
C Buchstaben, die in zwei Wörtern vorkommen Allgemeine Java-Themen 13
J Gleiche Packagestruktur in zwei *.jar Dateien Allgemeine Java-Themen 4
G Zwei bytes vergleichen Allgemeine Java-Themen 2
B zwei-dimensionale Collections bzw. Array mit Indizes Allgemeine Java-Themen 3
C Zwei Arrays vereinen Allgemeine Java-Themen 3
K Objekt-Austausch zwischen zwei Programmen über System-Clipboard Allgemeine Java-Themen 5
H Zwei verschiedene Dateien mittels einem Binärstream übertragen? Allgemeine Java-Themen 13
N hashCode() für zwei ints Allgemeine Java-Themen 5
turmaline Gleichheit von zwei Maps Map <String, Map <String, String>> Allgemeine Java-Themen 30
N Wie Listenabgleich auf zwei CPU Cores auslagern? Allgemeine Java-Themen 6
D Zufall wahr bzw. falsch mit zwei Faktoren Allgemeine Java-Themen 10
H Datenaustausch zwischen zwei Java-Programmen Allgemeine Java-Themen 5
H Ausgabe von zwei Textfeldern Allgemeine Java-Themen 3
H Zwei unabhängige Threads miteinander kommunizieren lassen Allgemeine Java-Themen 3
G zwei mal synchronized Allgemeine Java-Themen 5
Z zwei Daten vergleichen Allgemeine Java-Themen 4
C ArrayList anhand von zwei Attributen sortieren Allgemeine Java-Themen 4
S Alle Elemente von zwei Listen vergleichen Allgemeine Java-Themen 10
T IText: Zwei A4 PDF´s auf ein A3 PDF´s Allgemeine Java-Themen 2
J Verschachtelte ListIteratoren um in zwei Listen hin und herzugehen Allgemeine Java-Themen 5
A Differenz zwischen zwei Uhrzeiten Allgemeine Java-Themen 7
H Shortcut ruft zwei Menu-punkte auf Allgemeine Java-Themen 5
J Zwei konstruktoren? Allgemeine Java-Themen 8
A zwei listen vergleichen und unterschiede anzeigen Allgemeine Java-Themen 3
J Zwei sortierte Listen zusammenfassen Allgemeine Java-Themen 8
G Linked List zwischen zwei Threds übergeben Allgemeine Java-Themen 11
J zwei HashMaps vereinen Allgemeine Java-Themen 3
C Viele Informationen aus zwei Collections vergleichen Allgemeine Java-Themen 2
G Jfreechart zwei charts Allgemeine Java-Themen 2
S Zwei Anwendungen unter Tomcat Allgemeine Java-Themen 4
T Anzahl Tage zwischen zwei Daten - Stunde fehlt? Allgemeine Java-Themen 2
V Zwei ArrayList(s) vergleichen Allgemeine Java-Themen 6
T Überprüfen ob zwei Farben ähnlich sind Allgemeine Java-Themen 14
M zwei main-Methoden Allgemeine Java-Themen 7
P zwei JFrames zusammenhängen Allgemeine Java-Themen 4
A Summe und Produkt von zwei Feldern ( arrays) Allgemeine Java-Themen 9
M HashMap kapselt zwei Objekte aber wie baut man eine Matrix? Allgemeine Java-Themen 2
H zwei Date Variablen überschreiben sich Allgemeine Java-Themen 2
2 Tage zwischen zwei Datumsdaten zählen Allgemeine Java-Themen 2
G Tage zwischen zwei Datumsdaten zählen Allgemeine Java-Themen 3
J Zwei String auf ähnlichkeiten untersuchen? Allgemeine Java-Themen 3
C kürzester weg zwischen zwei Punkten, Koordinaten finden Allgemeine Java-Themen 15
B zwei Bilder miteinander vergleichen Allgemeine Java-Themen 25
L Anzahl Tage zwischen zwei Kalenderdaten Allgemeine Java-Themen 5
P Threadprogrammierung - zwei Threads parallel - einer beendet Allgemeine Java-Themen 3
G Kommunikation von zwei Java-Programmen Allgemeine Java-Themen 3
A Zusammenfassen von zwei Dateien (wie beim DOS-Befehl copy) Allgemeine Java-Themen 6
S zwei Arrays zusammenfassen Allgemeine Java-Themen 14
L Zwei Hashtables statt einer? Allgemeine Java-Themen 6
M zwei Threads - ein singleton-Objekt Allgemeine Java-Themen 3
A funktion schiffeZeichnen zwei mal aufrufen Allgemeine Java-Themen 16
G zwei Rückgabewerte gefordert. Was tun ? Allgemeine Java-Themen 10
Chucky Zwei Binärbäume vereinigen Allgemeine Java-Themen 7
B Fehler:Mein Applet kann nicht auf zwei txt-Dateien zugreifen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben