Coding mit Java | Java-basierten APIs

  • Ersteller Ersteller ij9F_i0FaF-d9lrDSDDpDbfo
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
Das sollte meines Wissens nach vollkommen egal sein ;)
Hast du Skype oder so? :D Wenn du mir zeigen könntest, wie man Plugins entwickelt, würde ich mich sehr freuen.

PS: Ich habe schon Java Erfahrung, darum müsstest du mir nicht jede einzelne Line erklären :D
 
Ok. Danke.

Und wie kann ich, wenn ich das Projekt in IntelliJ angelegt habe, dass mit GitHub synchronisieren? Oder geht das immer automatisch, wenn ich etwas neues zum Code hinzufüge?
Zuerst musst du ein Projekt erstellen. Entweder importierst du ein existierendes (VCS->Checkout from Version Control->GitHub) oder du erstellst ein Projekt und pushst es zu GitLab (VCS->Import into Version Control->GitHub). Wenn du Änderungen in das Repository hochladen willst, drückst du STRG+K (=Commit) gibst dann im Textfeld deine Änderungen ein, es darf nicht leer sein!, dann gehst du zu den Buttons und hoverst über Commit. In der Liste klickst du dann auf Commit and Push. Nun werden deine Änderungen hochgeladen. Falls du einmal nur auf Commit gedrückt hast, ist dies nicht schlimm. Gehe dann in den Terminal-Tab von IntelliJ, dabei ist es wichtig, dass du bei der Installation von Git ausgewählt hast, dass man die sicheren Befehle über die Standard-Konsole accessen kann. Dann gibst du in der IntelliJ Konsole git push origin master ein. Dies ist das pushen. Solltest du die Option zum git in der Konsole nutzen abgewählt haben (nicht die mit der Warnung, die ist nicht wichtig) musst du das Programm ich glaube es hieß Git Bash öffnen und dich dann per CD zum Projektverzeichnis bewegen und den push Befehl dort ausführen.
Wenn du die Änderungen aus GitHub herunterladen willst, drückte STRG + T und wähle im Dialog Rebase aus.
Ich empfehle dir außerdem, eine .gitignore Datei zu erstellen. Diese bestimmt, was zum Repository gehören soll, und was nicht. Zu den nicht-dazugehörenden Dateien zählt z.B. Der komplette .idea Ordner, denn dieser wäre für Eclipse- Nutzer unbrauchbar. Genauso wie bei Eclipse der bin Ordner. Eine gutes .gitignore Template findest du hier: http://hastebin.com/erexidabid.avrasm
Desweiteren empfehle ich dir, ein Dependency-Management System wie Maven zu verwenden. So musst du nicht deine Libraries mit hochladen und es erspart dir Lizenzprobleme, falls du externen Quellcode hochlädst, für den du zum weiterverbreiten keine Rechte hast.(was an sich aber ziemlich unwahrscheinlich ist.) Desweiteren spart Maven Zeit und man kann es gut mit CIs nutzen.

So das waren erstmal so ein paar Grundlagen, ich hoffe ich konnte dir weiterhelfen.
Wegen den genannten Menüpunkten am Anfang, (nicht die Tastenkürzel) , dort könnten ein paar Fehler drin sein, da ich gerade nur am Tablet bin und diese hier nicht überprüfen kann.

Ich hoffe, dass ich dir weiterhelfen konnte.

LG Erik
 
Zuletzt bearbeitet von einem Moderator:
Zuerst musst du ein Projekt erstellen. Entweder importierst du ein existierendes (VCS->Checkout from Version Control->GitHub) oder du erstellst ein Projekt und pushst es zu GitLab (VCS->Import into Version Control->GitHub). Wenn du Änderungen in das Repository hochladen willst, drückst du STRG+K (=Commit) gibst dann im Textfeld deine Änderungen ein, es darf nicht leer sein!, dann gehst du zu den Buttons und hoverst über Commit. In der Liste klickst du dann auf Commit and Push. Nun werden deine Änderungen hochgeladen. Falls du einmal nur auf Commit gedrückt hast, ist dies nicht schlimm. Gehe dann in den Terminal-Tab von IntelliJ, dabei ist es wichtig, dass du bei der Installation von Git ausgewählt hast, dass man die sicheren Befehle über die Standard-Konsole accessen kann. Dann gibst du in der IntelliJ Konsole git push origin master ein. Dies ist das pushen. Solltest du die Option zum git in der Konsole nutzen abgewählt haben (nicht die mit der Warnung, die ist nicht wichtig) musst du das Programm ich glaube es hieß Git Bash öffnen und dich dann per CD zum Projektverzeichnis bewegen und den push Befehl dort ausführen.
Wenn du die Änderungen aus GitHub herunterladen willst, drückte STRG + T und wähle im Dialog Rebase aus.
Ich empfehle dir außerdem, eine .gitignore Datei zu erstellen. Diese bestimmt, was zum Repository gehören soll, und was nicht. Zu den nicht-dazugehörenden Dateien zählt z.B. Der komplette .idea Ordner, denn dieser wäre für Eclipse- Nutzer unbrauchbar wäre. Genauso wie bei Eclipse der bin Ordner. Eine gutes .gitignore Template findest du hier: http://hastebin.com/erexidabid.avrasm
Desweiteren empfehle ich dir, ein Dependency-Management System wie Maven zu verwenden. So musst du nicht deine Libraries mit hochladen und es erspart dir Lizenzprobleme, falls du externen Quellcode hochlädst, für den du zum weiterverbreiten keine Rechte hast.(was an sich aber ziemlich unwahrscheinlich ist.) Desweiteren spart Maven Zeit und man kann es gut mit CIs nutzen.

So das waren erstmal so ein paar Grundlagen, ich hoffe ich konnte dir weiterhelfen.
Wegen den genannten Menüpunkten am Anfang, (nicht die Tastenkürzel) , dort könnten ein paar Fehler drin sein, da ich gerade nur am Tablet bin und diese hier nicht überprüfen kann.

Ich hoffe, dass ich dir weiterhelfen konnte.

LG Erik


Vielen Dank. :)
Ich werde es gleich morgen mal ausprobieren.

Mit Maven habe ich noch nie gearbeitet.
Wie binde ich damit Spigot und andere Api's wie die EffectLib ein?
 
So ich habe bei meinem anti speedhack plugin ganze Arbeit geleistet.Man wurde sogar dafür gekickt wenn man auf dem Eis gesprungen und am sprinten war.Jetzt will ich aber weiter machen allerdings will mein Eclipse nicht mehr.
So lautet die eclipse.ini:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120913-144807
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-Xms40m
-Xmx512m
Und das steht wenn ich es mit Konsole starten will:http://prntscr.com/5ngxfi.
Laut der Fehlermeldung will Eclipse im 32bit Modus starten was aber nicht geht weil ich das developement kit auf 64 bit habe.Was soll ich tun?
 
So ich habe bei meinem anti speedhack plugin ganze Arbeit geleistet.Man wurde sogar dafür gekickt wenn man auf dem Eis gesprungen und am sprinten war.Jetzt will ich aber weiter machen allerdings will mein Eclipse nicht mehr.
So lautet die eclipse.ini:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120913-144807
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-Xms40m
-Xmx512m
Und das steht wenn ich es mit Konsole starten will:http://prntscr.com/5ngxfi.
Laut der Fehlermeldung will Eclipse im 32bit Modus starten was aber nicht geht weil ich das developement kit auf 64 bit habe.Was soll ich tun?
Da ich dieses Problem noch nie hatte und seit kurzem IntelliJ nutze, empfehle ich dir folgende Dinge zu probieren, ohne Garantie, dass es hinterher Funktioniert:

Falls du Eclipse wirklich mit Java startest (keine .bat oder .exe Dateien sondern eine Jar Datei, Versuch mal in der Commandline hinter den ganzen Argumenten ein -d32 zu adden, vielleicht hast du beide Java Versionen auf dem Rechner installiert, und deswegen nimmt diese Datei das 32-Bit Script. -d32 zwingt die JVM dazu, die 32-Bit Java Version zu verwenden. Solltest du dies nicht tun, gibt es dann bei der Ausführung einen Fehler.

Sonst kannst du immer Eclipse neuinstallieren. Einfach den Ordner löschen, es herunterladen und dann neu entpacken. Nun musst du wieder den alten workspace einstellen. Es kann sein, dass du deine Projekte neu importieren musst. Nutze dazu File->Import und wähle den Ordner aus, in dem deine Projekte gespeichert sind.

Dies waren ein paar grundlegende Hilfen. Generell gilt: nie etwas an Startup oder Programmdateien ändern, wenn man nicht weiß, was man tut ;)

LG Erik
 
Du setzt den Tieren immer einen Vector in deine richtung
Nope. Das so zu machen ist doch eig. zu primitiv, wo es doch die Navigation des Tieres gibt.
Hätte jemand anders noch eine Lösung, wie die Tiere mich verfolgen?
Ich hab mich im NMS mal ein bisschen umgeschaut und hab dir ne Methode geschrieben, die du dann so jede Sekunde aufrufen solltest, damit es einigermaßen flüssig ist. (Kannst du im übrigen auch asynchron machen!)
Code:
public static void move( LivingEntity entity, Location target ) {
        if( entity.getLocation().distance(target) > 15 )
            entity.teleport(target);
        else {
            if( entity.getLocation().distance(target) <= 1 )
                return;
            EntityCreature mob = ((CraftCreature) entity).getHandle();
            PathEntity path = mob.getNavigation().a(target.getX(), target.getY(), target.getZ());
            mob.getNavigation().a(path, 0.8);
        }
    }
Ich hoffe mal, dass er dir weiterhilft! Wenn du ihn nicht verstehst, sag es mir!
 
Da kommt ein Fehler :/
Code:
[13:52:48 WARN]: [Haustiere] Task #8 for Haustiere v1.0 generated an exception

java.lang.NoClassDefFoundError: org/bukkit/craftbukkit/v1_7_R3/entity/CraftCreature

    at de.spassballer.Haustiere.FollowingPets.move(FollowingPets.java:18) ~[?:?]

    at de.spassballer.Haustiere.PetCmd$1.run(PetCmd.java:40) ~[?:?]

    at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71) ~[Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:641) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
 
Da kommt ein Fehler :/
Code:
[13:52:48 WARN]: [Haustiere] Task #8 for Haustiere v1.0 generated an exception

java.lang.NoClassDefFoundError: org/bukkit/craftbukkit/v1_7_R3/entity/CraftCreature

    at de.spassballer.Haustiere.FollowingPets.move(FollowingPets.java:18) ~[?:?]

    at de.spassballer.Haustiere.PetCmd$1.run(PetCmd.java:40) ~[?:?]

    at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71) ~[Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:641) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
Jetzt stellt sich für mich die Frage ob du in der Lage bist Java Exception Stack-Traces richtig zu lesen oder nicht. Wenn nicht, dann helfe ich.
 
Da kommt ein Fehler :/
Code:
[13:52:48 WARN]: [Haustiere] Task #8 for Haustiere v1.0 generated an exception

java.lang.NoClassDefFoundError: org/bukkit/craftbukkit/v1_7_R3/entity/CraftCreature

    at de.spassballer.Haustiere.FollowingPets.move(FollowingPets.java:18) ~[?:?]

    at de.spassballer.Haustiere.PetCmd$1.run(PetCmd.java:40) ~[?:?]

    at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71) ~[Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:641) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [Spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
Okay, Kommando zurück! Du verwendest Spigot 1.7.10 oder den Hack. Mein Code geht aber erst ab Spigot 1.8 - also hast du jetzt 2 Möglichkeiten: Erstens du updatest auf 1.8, zweitens du nimmst diesen Code hier:
Code:
    public void movePet( LivingEntity entity, Location loc ) {
        EntityCreature moveMob = ((CraftCreature)entity).getHandle();
        PathEntity path = moveMob.world.a(moveMob, loc.getX(), loc.getY(), loc.getZ(), 100.0F, true, false, false, true);
        moveMob.setPathEntity(path);
        moveMob.getNavigation().a(path, 1.25f);
    }
Aber jetzt mal unter uns: Ich denke nicht, dass du den Code von vorher verstanden hast ^^ Also frag bitte nach, wenn dir was nicht klar ist!
 
Ok, kannst du mir bitte den Code erklären?
Erstens mal ein Tipp aus dem Hause @Datenstau: Du importierst im Projekt wohl Spigot Code aus der 1.7.x, lässt den Server jedoch mit der Spigot 1.8 laufen. Änder das mal als erstes. Dann zum Code:
Nope. Das so zu machen ist doch eig. zu primitiv, wo es doch die Navigation des Tieres gibt.

Ich hab mich im NMS mal ein bisschen umgeschaut und hab dir ne Methode geschrieben, die du dann so jede Sekunde aufrufen solltest, damit es einigermaßen flüssig ist. (Kannst du im übrigen auch asynchron machen!)
Code:
public static void move( LivingEntity entity, Location target ) {
        if( entity.getLocation().distance(target) > 15 )
            entity.teleport(target);
        else {
            if( entity.getLocation().distance(target) <= 1 )
                return;
            EntityCreature mob = ((CraftCreature) entity).getHandle();
            PathEntity path = mob.getNavigation().a(target.getX(), target.getY(), target.getZ());
            mob.getNavigation().a(path, 0.8);
        }
    }
Ich hoffe mal, dass er dir weiterhilft! Wenn du ihn nicht verstehst, sag es mir!
Zuerst wird überprüft ob das Tier weiter als 15 Blöcke entfernt ist, wenn ja, dann wird es zur Zielposition teleportiert.
Dies garantiert in erster Linie, dass das Tier, weil es etwa in ein Loch gefallen ist, dem Spieler nicht mehr folgen kann, weil es zu weit entfernt ist. Wenn dies alles nicht der Fall sein sollte wird überprüft, ob das Tier mindestens einen Block vom Spieler entfernt ist. Dies sorgt dafür, dass es sich nicht ständig versucht in den Spieler hinein zu bewegen. Jetzt kommen wir zum NMS (Native Minecraft Source) Teil. Hierbei wird durch die CraftBukkit Implementierung der SpigotAPI ein Objekt "mob" des Typs EntityCreature erzeugt. Da Mobs im NMS eine Navigation (erreichbar über die Methode .getNavigation();) besitzen, können wir das Tier dazu bringen sich zu einer bestimmten Location zu bewegen. Hierbei wird ein PathEntity Objekt erzeugt, welches alle Wegpunkte bis zum Ziel gespeichert hat. Nun setzt man die Navigation wiederum auf diesen Pfad und gibt auch eine Geschwindigkeit (in diesem Fall 0.8 - es kann aber auch beliebig schnell sein) an. Ich hoffe, dass das zum Verständis für den Code beigetragen hat. Wenn nicht, dann frag gerne weiter ;)
 
Wie binde ich mit Maven Spigot und andere Api's wie die EffectLib in ItelliJ ein?
Dafür müssen diese in einem sogenannten Repository sein. Jedes Maven-Projekt hat eine pom.xml. Diese enthält die Projektinformationen. Für diese anleitung gehe ich davon aus, dass du Maven bereits installiert hast.

Falls du Maven-Support zu einem bestehenen Projekt hinzufügen willst: Recktsklick auf das Modul -> Add Framework Support und wähle ein Häkchen bei Maven. Nun sollte sich die pom.xml öffnen. Dort siehst du zuerst einmal
Code:
    <groupId>groupId</groupId>
    <artifactId>projektname</artifactId>
    <version>1.0-SNAPSHOT</version>
Wenn dein Packagepfad "de.forumdevgroup.api" wäre, wäre deine groupId de.forumdevgroup und deine artifactId api.
Übrigens: IntelliJ unterstützt in der pom.xml Autocomplete :)
Mehr hier: http://maven.apache.org/guides/mini/guide-naming-conventions.html

Darunter befindet sich erst einmal nichts. Falls du dein Projekt mit Maven builden willst, musst du noch ein Compiler-Plugin zu deiner pom.xml hinzufügen. Dies wird dann den Build übernehmen. Eines davon ist das Maven-Shade plugin. Dies erlaubt es dir auch, externe Libraries in deiner Jar einzubinden.
Mehr: http://maven.apache.org/plugins/maven-shade-plugin/index.html (Nutzung unter "Usage").

So, nun zum mit wichtigsten Teil: Dependencies und Repositorys
Das zentrale Maven repository ist : http://search.maven.org/
Dies muss man nicht zur pom.xml adden. Dies ist bereits in der settings.xml von Maven gespeichert. Du kannst dort auch die anderen Repos speichern, ich mache dies aber immer in der pom. Ein Repository enthält viele Artefakte.
Code:
<repositories>
    <repository>
        <id>elmakers-repo</id>
        <url>http://maven.elmakers.com/repository/ </url>
    </repository>
</repositories>
Ein Repository fügst du im Bereich <repositories> hinzu.
Eine Repository-Definition muss eine ID und die URL des Repos enthalten. Dies wäre z.B. das Repository in dem sich u.a. EffectLib befindet.
Nun kannst du eine Dependency zu einem Artefakt aus einem der Repositorys hinzufügen.
Dies tust du im <dependencies> Bereich.
Um nun zum Beispiel EffectLib zum Projekt adden, fügst du die Dependency unter <dependencies> hinzu.
Code:
<dependency>
    <groupId>de.slikey</groupId>
    <artifactId>EffectLib</artifactId>
    <version>1.4</version>
    <scope>provided</scope>
</dependency>
Du kannst hierbei für alle Werte Autocomplete nutzen. Dies hilft dir z.B. die neueste Version des Artefakts zu finden.
Falls du das Shade Plugin (s.o.) nutzt, und willst, dass bestimmter Quellcode mit in die Jar compiled wird, setzt du den <scope> auf compile. Sonst solltest du ihn auf provided setzen. Wenn du änderungen an der pom.xml vornimmst wird dich IntelliJ fragen, ob die Maven-Änderungen importiert werden sollen. Dort solltest du dann auf Import Changes oder gar auf Auto-Import gehen. Manchmal wird die existierende Dependency auch nicht gefunden, obwohl sie laut der Quellseite existieren soll. Dafür klickst du auf das unterkringelte, drückst alt+enter und wählst "Update Maven Indices" (Oder so ähnlich xD ) aus. Dies dauert eine Weile und der Fehler sollte behoben sein. Informationen, ob eine Jar in einem Maven Repository ist, und wenn ja in welchem findest du üblicherweise auf der Download- oder der Hauptseite des Projekts.

Bei Spigot musst du folgendes einbinden:
Code:
    <repositories>
        <repository>
            <id>spigot-repo</id>
            <url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot-api</artifactId>
            <version>1.8-R0.1-SNAPSHOT</version>
            <type>jar</type>
            <scope>provided</scope>
        </dependency>
    </dependencies>

Einige Projekte unterstützen kein Maven. Hier musst du die Artefakte in deinem lokalen Repository installieren. Dies ist zum Beispiel auch bei der kompletten Spigot Version der Fall (Also Spigot-API ist wie Bukkit, Spigot ist wie CraftBukkit). Das installieren funktioniert mithilfe von mvn install. Wer das hier liest: Schreibt ein x in den Letzten Satz eurer Antwort ;) .Da ich das Glück habe, Zugriff auf ein Sonatype Nexus Repository zu haben, entfällt dieses Problem für mich ;)
Wie man Jars "installiert" erfährst du hier: http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
Um ein Maven-Goal auszuführen, musst du das IntelliJ Terminalwindow öffnen und dort mvn <goal1> <goal2> etc eingeben ;)

Was ich dir noch empfehlen kann: Maven Surefire (Unit Testing)
Continuous Integration mit Jenkins, TeamCity oder GitLabCI. (Rootserver wird benötigt)
Mehr dazu hier: https://www.gommehd.net/threads/coding-mit-java-java-basierten-apis.47889/page-60#post-726996

Ich hoffe, dass ich dir weiterhelfen konnte ;)

LG Erik


PS.: Fehlt was? xD @Sheigutn
 
Zuletzt bearbeitet von einem Moderator:
Es geht trotzdem nicht habe eclipse schon 6 mal neu runtergeladen die ini ist irgendwie Standart
 
Status
Für weitere Antworten geschlossen.

Soziale Medien

  • X
  • TikTok

Über uns

  • GommeHD.net ist einer der größten Minecraft-Server der Welt. Dir gefällt unser Server? Dann unterstütze uns durch einen Kauf im Shop!
  • Shop