datenbank verbindung config

cyb0rg

Aktives Mitglied
Hallo zusammen,

ich schreibe an einer anwendung die auf eine Datenbank zugreift.

Die "Produktive" DB befindet sich extern auf einem SQL Server.
Für die "Entwicklung" nutze ich eine DB lokal, die test Daten enthält.

So bisher ist es so, dass ich die adresse des Servers & die zugangsdaten hard coded habe ( ja ich weiss sollte man nicht :) ) allerdings ist sie vorerst nur für mich und das hat mir bisher gereicht. plane allerdings so oder so das laden und ausfüllen über eine maske.

Nichts desto trotz.. bisher muss ich jedesmal im Code den connect string anpassen bzw. werde demnächst das auslagern so dass ich lediglich ein boolean debug = true setzen muss.. so oder so ist es nicht elegant.

Die Frage ist nun, wie macht ihr es? Ich arbeite mit Git und am liebsten hätte ich es so, dass wenn ich ein Release deploye dass es automatisch den richtigen Server setzt und ich das nicht manuell erledigen muss. Umgekehrt dasselbe sobald ich mich bei der Entwicklung befinde hätte ich es am liebsten wenn es automatisch den test server nimmt..

Gruss
 

Thallius

Top Contributor
Ich bin mir nicht sicher was das bedeuten soll, dass du das über eine Maske machst aber wenn deine App eine Client Applikation ist, dann wird das so oder nichts werden und du Must vor der Release alles auf einen Webservice umbauen, was sehr viel Arbeit wird. Damit machst du dir jetzt schon doppelte Arbeit und solltest viellecht überlegen das jetzt schon richtig zu machen bevor es gänzlich zu spät ist.

Ansonsten kannst du doch einfach auf deinem Developer Rechner eine Datei „irgendwas.txt“ erstellen. Beim Programmstart siehst du nach ob die Datei existiert und wenn ja nimmst du die lokale DB ansonsten die Richtige.

Gruß

Claus
 

mrBrown

Super-Moderator
Mitarbeiter
Nutzt du Maven oder Gradle?

Dann wären vermutlich Profiles passend für dich. Gäbe dann eins für deploy und eins für debugging, in denen dann die entsprechende Config genutzt wird.

Auf irgendwelche Flags im Programm oder gar Datein aufm Rechner würd ich in jedem Fall verzichten.
 

Thallius

Top Contributor
Auf irgendwelche Flags im Programm oder gar Datein aufm Rechner würd ich in jedem Fall verzichten.

Klar, warum auch einfach, wenn man statt dessen ein eine riesige EierlegendeWollMilchSau benutzen kann, für die man erstmal tagelang recherchieren muss um sie halbwegs zu verstehen, dessen möglchkeiten man aber nur zu 1% nutzt wenn man alleine programmiert, dafür aber tausende von Dateien auf deinem Rechner installiert werden von denen kein Mensch weis wozu die eigentlich alle gut sein solllen....
 

mrBrown

Super-Moderator
Mitarbeiter
Hast du jemals Maven oder Gradle benutzt?

Das klingt nach dem typischen Meckern von jemandem, der es weder nutzt noch ansatzweise verstanden hat, warum man es nutzt...
 

stg

Top Contributor
Ich arbeite mit Git und am liebsten hätte ich es so, dass wenn ich ein Release deploye dass es automatisch den richtigen Server setzt und ich das nicht manuell erledigen muss.

Sofern die angesprochenen Build-Tools keine Option sind, kannst du das, was du möchtest aber doch auch schon allein mit git realisieren, dafür brauchst du lediglich zwei Branches -- einen fürs Release und den anderen für die Entwicklung. Für die Konfigurations-Dateien setzt du entsprechende Git-Attributes hinsichtlich der merge-Strategie. Dann kannst du sonstige Änderungen im Entwicklungsbranch einfach in den Release-Branch mergen ohne dabei deine Konfigurationsdateien kaputt zu schreiben und von dort dein Release bauen.

Siehe dazu z.B.: https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#_merge_strategies
 

Thallius

Top Contributor
Hast du jemals Maven oder Gradle benutzt?

Das klingt nach dem typischen Meckern von jemandem, der es weder nutzt noch ansatzweise verstanden hat, warum man es nutzt...

Ich muss das leider ständig nutzen. Aber ich sehe in den meisten Fällen einfach keinen Mehrwert darin.

Du hast mal gefragt was ich mache. Hier die ziemlich lange Erklärung dazu:

Ich entwickele Java und Web Applikationen. Wobei seit ein paar Jahren von den Auftraggebern eigentlich nur noch Web Apllikationen gefragt sind.

Ich arbeite für einen der größten Konzerne der Welt. Dort geht das folgendermaßen ab. Ich schreibe das jetzt extra extrem überspitzt ihr könnt das dann entsprechend auf die Realität skalieren wie ihr möchtet:

Irgendein Mitarbeiter hat eine Idee, wie man mit einer individuellen Software, die 1 und 1 zusammenrechnet einen Arbeitsprozess ungemein vereinfachen könnte. Der Manager findet diese Idee gut und ruft bei der globalen IT an und erklärt sein Anliegen. Die globale IT sagt sie wird sich beraten und dann wieder melden. Wenn der Manager nun Glück hat wartet er nur 1-2Monate bis er eine Antwort bekommt: „Wir haben das einmal durchgerechnet. Für diese Software brauchen wir einen Projektleiter, einen Front- und einen Backend-Softwarentwickler (Einer von denen wärst dann wahrscheinlich du), einen Qualitätstmanager, einen Technischen Redakteur und ein etwa 5 köpfiges Betatest-Team. Dazu müssen wir die Software nach DIN a,b,c,d und e validieren und zertifizieren. Wenn Sie das OK geben, können wir schon in 6 Monaten damit anfangen und in etwa 24 Monaten haben sie die Software. Die Kosten belaufen sich auf etwa 450.000 Euro“.

Das ist natürlich keine Option für den Manager also nimmt er Plan B. Er angagiert einen Studenten oder Praktikanten oder einen gerade fertig gewordenen Informatik Studenten (eben was gerade verfügbar und am billigsten ist) und lässt diesen die Software im Alleingang entwickeln. Der nimmt natürlich das was er mal so Halbseiden gelernt hat, nämlich Java Spring für das Backend und AngularJS für das Frontend. Das ganze schön mit Maven aufgesetzt. Da er aber keinen Senior hat der ihm dabei hilft haben wir nun 3 mögliche Ergebnisse:

1) Die Software wird nach einem halben Jahr 1+1 ausrechnen aber 3 heraus bekommen und er braucht Hilfe.
2) Die Software funktioniert auf dem Windows Entwicklungsrechner des Studenten aber keiner weis wie man diese nun auf den Amazon Cloud Linux Server mit externer Oracle DB und entsprechenden Problemen der Portfreischaltungen etc installieren soll und man braucht Hilfe.
2) Der Manager wird nach einem halben Jahr langsam nervös weil die Software immer noch nicht fertig ist und braucht Hilfe

Diese Hilfe bin dann ich. Ich sehe mir dann an was der Studi da verzapft hat und versuche meist wenigstens das backend zu retten. Deshalb muss ich auch mit Maven arbeiten und mit Spring obwohl ich es einfach nur grottig finde. Wenn ich das ganze in PHP oder meinetwegen auch in NodeJS machen würde, wäre es um einiges performanter und um Längen kompakter. Wenn das backend komplett Schrott ist mache ich das auch neu in PHP oder NodeJS.
Das Frontend ist in75% der Fälle komplett unbrauchbar. Das schreibe ich dann lieber eben schnell neu in JavaScript und JQuery. Hier habe ich mir über Jahrzehnte ein eigens kleines Framework geschrieben mit dem ich sehr schnell eine Single side Applikation schreiben kann die dynamisch alle weiteren Inhalte nachlädt. Also nicht nur die html, sondern auch die ja, css und ein JSON file welches die Texte für die von User ausgewählte Sprache enthält (Multilingual). Das Framework ist dermaßen klein und einfach, dass es nichtmal 5MB groß ist.

Nach etwa 14 Tagen bis 4 Wochen hat der Manger dann eine funktionieren Software die ihm 1+1 richtig ausrechnet. Und nein, die ist natürlich nicht validiert oder zertifiziert, nein, die hat keine Unittest, kein qualitätsmanagement und auch keinen Betatest hinter sich. Warum auch? Diese Software berechnet 1+1 und jeder sieht ob das Ergebnis stimmt oder nicht.

Der Manager ist über glücklich und empfiehlt mich weiter, so dass ich mitlerweile schon Aufträge ablehnen muss.

Nochmal: ich sehe die Notwendigkeit eines Maven, einer QS und dem ganzen oben genannten Zenober, wenn ich eine Software schreibe die die Größenordnung eines CMS ala SAP hat, welches bei einem Fehler dazu führen kann, dass eine ganze Firma nicht mehr funktioniert. Aber das sind ja nicht einmal 1% der Anwendungen die geschrieben werden. Bei einer Anwendung, die von einer Person geschrieben wird und die eine klar abgesteckte unkritische Funktionaliät hat, da braucht an so etwas nicht. Da kostet das einfach nur unnötige Zeit und erzeugt weitere Abhängigkeiten zu anderen Software Entwickelrn, die man nicht einmal kennt und auf die man im Notfall auch keinen Einfluss nehmen kann. Natürlich kommt man niemals ganz darum herum sich von anderen abgängig zu machen. Es fängt ja schon beim OS an, das hindert mich persönlich aber nicht daran trotzdem diese Abhägigkeiten so minimal wie möglic h zu halten.

Und solange ich damit so großen Erfolg habe, werde ich das sicherlich nicht ändern.

Gruß

Claus
 

mrBrown

Super-Moderator
Mitarbeiter
Ich habe kaum eine Anwendung gesehen, die ohne Abhängigkeiten zu anderen Libs auskommt (und da du von Web sprichst, bezweifle ich, dass es dir anders gehen kann).
Und schon eine Abhängigkeit ist für mich Grund genug, ein Build-Tool dafür zu nutzen. Völlig unabhängig davon, wie groß und komplex das Projekt wird.


2) Die Software funktioniert auf dem Windows Entwicklungsrechner des Studenten [...]
Du kritisierst einerseits das, bist aber gleichzeitig gegen Build-Tools, deren Haupt-Zweck ist, genau das zu verhindern und den Build unabhängig vom System zu machen?
Genau diese Probleme (und alles was du sonst kritisierst) sind für mich ein Argument für Build-Tools und mehr "Software-Engineering" und keineswegs dagegen.

[...] die ist natürlich nicht validiert oder zertifiziert, nein, die hat keine Unittest, kein qualitätsmanagement und auch keinen Betatest hinter sich [...]
Für mich ist das so ziemlich das Gegenteil von Software-Engineering (ich bin allerdings auch nur der billige Studi, der nichts kann...). Irgendwer hat mal gesagt, "Code schreiben kann jeder, den Unterschied zwischen Gefrickel und professionellem Entwicklen macht das Drumherum aus".


Bei mir läuft alles mit Maven/Gradle + Git + Tests + CI und ist von push bis Deploy automatisiert.
Was mich das kosten? etwa 2 min Zeit zum Aufsetzen und Abhängigkeiten zum Tooling (die aber nicht mehr als eine Java-Installation voraussetzen und damit maximal Unabhängig von der Umgebung sind...)
Was ich gewinnen? Der Build ist unabhängig von mir (was so ziemlich die größte Fehlerquelle ist) und läuft überall reproduzierbar und spart mir üblicherweise einiges an (Zeit-) Aufwand.
 

Thallius

Top Contributor
Ich habe kaum eine Anwendung gesehen, die ohne Abhängigkeiten zu anderen Libs auskommt (und da du von Web sprichst, bezweifle ich, dass es dir anders gehen kann).
Und schon eine Abhängigkeit ist für mich Grund genug, ein Build-Tool dafür zu nutzen. Völlig unabhängig davon, wie groß und komplex das Projekt wird.

Was brauche ich denn in Web Applikationen für Abhängigkeiten? Ich habe einen Ordner in dem alle Dateien liegen die ich deployen muss damit meine App läuft. Thats it!.
Brauche ich eine lib, dann downloade ich mir die benötigte .js datei und kopiere sie in meinen externallibs Ordner in der Application. Damit kann ich sicher sein, dass meine Applikation überall funktioniert auch wenn es mal aus versehen eine neue Version der Lib gibt die vielleicht einen Fehler hat. Ich brauche die lib ja nicht updaten solange sie funktioniert. Wozu brauche ich da jetzt ein Tool?
 

mrBrown

Super-Moderator
Mitarbeiter
Was brauche ich denn in Web Applikationen für Abhängigkeiten? Ich habe einen Ordner in dem alle Dateien liegen die ich deployen muss damit meine App läuft. Thats it!.
Da du von Java und Web sprachst: Mindestens die entsprechende APIs. Oder hast du wirklich alle Jars mit im Repo liegen, inklusive derer Abhängigkeiten (du nutzt doch VCSs?)?

Deployen läuft mit Tool auch nicht anders, man tippt den passenden Befehl ein, und fertig. Oder je nachdem wie weit automatisiert ist: man pusht und alles danach läuft automatisch (setzt natürlich Tests voraus).

Brauche ich eine lib, dann downloade ich mir die benötigte .js datei und kopiere sie in meinen externallibs Ordner in der Application.
Mit einem Build-Tool nicht anders, nur passiert es automatisch.

Damit kann ich sicher sein, dass meine Applikation überall funktioniert auch wenn es mal aus versehen eine neue Version der Lib gibt die vielleicht einen Fehler hat. Ich brauche die lib ja nicht updaten solange sie funktioniert.
Mit einem Build-Tool nicht anders, da wird genausowenig einfach eine andere Version genutzt, wenn du es nicht angibst. Allerdings kann man den Update-Prozess automatisieren, wenn man denn möchte, im Gegensatz zu deiner Variante.
Das "überall funktionieren" klappt im Zweifelsfall auch besser, weil der gesamte Prozess automatisiert ist.

Wozu brauche ich da jetzt ein Tool?
"Brauchen" ist relativ. Nur passiert dann halt alles, was du per Hand machst automatisch.
 

Thallius

Top Contributor
"Brauchen" ist relativ. Nur passiert dann halt alles, was du per Hand machst automatisch.

Dem Tool muss ich die Abhängigkeit auch erst sagen. Das ist auch nicht schneller als die Datei eben selber zu kopieren.

Und wie ich bereits sagte: Bei Java als Backend nutze ich auch Maven weil man bei den Kram eh schon keinen Durchblick mehr hat was da eigentlich alles passiert ist der zusätzliche autmatismus auch egal.
Ich von mir aus würde aber eben, unter anderem wegen diesem Grund (Von der grauenhaften Performance mal ganz abgesehen) niemals freiwillig ein Java Backend schreiben....

Und ja, ich habe alle libs mit im Repo. Warum auch nicht. Da sich die nie ändern stören sie auch nicht weiter. Nur der intiale Commit dauert halt etwas länger. Dafür habe ich auch hier mit einem Pull eine komplett lauffähige Version und muss mich um nichts anderes kümmern
 
Zuletzt bearbeitet:

mrBrown

Super-Moderator
Mitarbeiter
Dem Tool muss ich die Abhängigkeit auch erst sagen. Das ist auch nicht schneller als die Datei eben selber zu kopieren.
also ich schreibe den Namen deutlich schneller, als den namen zu schreiben, dann die Datei runter zu laden und an den passenden Ort zu kopieren...

Und wie ich bereits sagte: Bei Java als Backend nutze ich auch Maven weil man bei den Kram eh schon keinen Durchblick mehr hat was da eigentlich alles passiert ist der zusätzliche autmatismus auch egal.
Wenn du keinen Durchblick bei Java hast, ist das aber tendenziell deine Schuld...

Ich von mir aus würde aber eben, unter anderem wegen diesem Grund (Von der grauenhaften Performance mal ganz abgesehen) niemals freiwillig ein Java Backend schreiben....
Das du Java nicht nutzen möchtest, wenn du es nicht verstehst, kann ich ja noch nachvollziehen.

Aber Java ist dir zu langsam im Vergleich mit PHP oder NodeJS?
Deinen Humor möchte ich auch haben...
 

Thallius

Top Contributor
Aber Java ist dir zu langsam im Vergleich mit PHP oder NodeJS?
Deinen Humor möchte ich auch haben...

DAS wiederum läßt darauf schliessen das du von PHP nicht ein bischen Ahnung hast. Und ich meine hier PHP und nicht Synfony, Laravel oder solche Krankheiten die krampfhaft versuchen PHP Objectorientiert zu machen, was es aber niemals wird und wofür es auch niemals gemacht wurde.
Und was man bei einem Backend auch wirklich absolut nicht braucht. Daten aus einer DB lesen, in ein JSON packen und verschicken und das Ganze anders herum, das kann man auch sehr gut procedural lösen....
 

mrBrown

Super-Moderator
Mitarbeiter
DAS wiederum läßt darauf schliessen das du von PHP nicht ein bischen Ahnung hast. Und ich meine hier PHP und nicht Synfony, Laravel oder solche Krankheiten die krampfhaft versuchen PHP Objectorientiert zu machen, was es aber niemals wird und wofür es auch niemals gemacht wurde.
Das wiederum läßt darauf schliessen das du von JAVA und PHP nicht ein bischen Ahnung hast. Und ich meine hier Java, nicht irgendein riesiges Framework.
Reines Java ist so gut wie *immer* schneller als PHP.
Objektiver Benchmark dazu, der deinem genannten Use-Case am nächsten kommen dürfte: https://www.techempower.com/benchmarks/#section=data-r15&hw=ph&test=db

Und was man bei einem Backend auch wirklich absolut nicht braucht. Daten aus einer DB lesen, in ein JSON packen und verschicken und das Ganze anders herum, das kann man auch sehr gut procedural lösen....
Das dürfte allerdings nur einen kleinen Teil aller Backends ausmachen^^
 

stg

Top Contributor
Ist der Flame-War schon wieder vorbei? :(

Aber vielleicht meldet sich @cyb0rg ja doch noch mal zurück und geht auf die Antworten ein, die sich noch auf die Frage bezogen haben...
 

cyb0rg

Aktives Mitglied
Hallo zusammen,

Damit machst du dir jetzt schon doppelte Arbeit und solltest viellecht überlegen das jetzt schon richtig zu machen bevor es gänzlich zu spät ist.

und genau deshalb frage ich hier :)

Ansonsten kannst du doch einfach auf deinem Developer Rechner eine Datei „irgendwas.txt“ erstellen. Beim Programmstart siehst du nach ob die Datei existiert und wenn ja nimmst du die lokale DB ansonsten die Richtige.

hatte ich mir auch schon überlegt, doch die anwendung nutze ich auch selbst bei meinem developer rechner :) entsprechend... hmm
dazu kommt.. habs mir etwas überlegt.. und ich müsste beim start der anwendung prüfen können von welchem verzeichnis aus die anwendung gestartet wird? damit ich bzgl dem file selbst prüfen kann.. wüsste nicht mal ob es möglich ist den pfad von dem aus die anwendung gestartet wird iin RunTime zu prüfen... müsste ich mal sowieso recherchieren ist interessant.

Nutzt du Maven oder Gradle?

Dann wären vermutlich Profiles passend für dich. Gäbe dann eins für deploy und eins für debugging, in denen dann die entsprechende Config genutzt wird.

Auf irgendwelche Flags im Programm oder gar Datein aufm Rechner würd ich in jedem Fall verzichten.

ich habe beides mal kurz angewandt, gradle hauptsächlich wegen der Android Entwicklung.

Allerdings muss ich die 2 Tools noch richtig lernen, wüsste jetzt so spontan nicht wie ich da mehrere Profile mit config files erstelle.

Ich bin auf jedenfall grundsätzlich überhaupt nicht abgeneigt von solechen build tools, mein ziel ist es, selbst wenn es zu lernzwecken ist, ein build automatisierungsprozess zu erreichen.

schon allein mit git realisieren, dafür brauchst du lediglich zwei Branches -- einen fürs Release und den anderen für die Entwicklung. Für die Konfigurations-Dateien setzt du entsprechende Git-Attributes hinsichtlich der merge-Strategie. Dann kannst du sonstige Änderungen im Entwicklungsbranch einfach in den Release-Branch mergen ohne dabei deine Konfigurationsdateien kaputt zu schreiben und von dort dein Release bauen.

Siehe dazu z.B.: https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#_merge_strategies

sehr interessant! zeigt mir, dass ich Git noch einiges lernen muss / darf :) danke!

Bei mir läuft alles mit Maven/Gradle + Git + Tests + CI und ist von push bis Deploy automatisiert.
Was mich das kosten? etwa 2 min Zeit zum Aufsetzen und Abhängigkeiten zum Tooling (die aber nicht mehr als eine Java-Installation voraussetzen und damit maximal Unabhängig von der Umgebung sind...)
Was ich gewinnen? Der Build ist unabhängig von mir (was so ziemlich die größte Fehlerquelle ist) und läuft überall reproduzierbar und spart mir üblicherweise einiges an (Zeit-) Aufwand.

das hört / liest sich für mich als sehr interessant an. Hast du da genauere Informationen?

Grundsätzlich verstehe ich , dass es gefährlich ist, sich von Produkten abhängig zu machen, gleichzeitig aber sehe ich auch die Vorteile, wenn mann jetzt einfach mal den Aufwand ignoriert. Ich sags mal so, der Aufwand an sich, ob es sinn macht oder nicht wenn man alleine Entwickelt, ich mache es sehr gerne und wenn ich etwas cooles neues "entdecke" dann würde ich es gerne meinen Kollegen zeigen und vielleicht wenn es überzeugt gemeinsam in Zukunft nutzen.
Bisher ist der Entwicklungsprozess lediglich so -> Git Branch erstellen von dev, mergen pushen, review code, that's it. Falls alles okay -> ins Master.
Das einzige was ich noch lokal "ausführe" ist eine Statische Code Analyse & FindBugs.. wie auch code Formatter.. das würde ich später gerne auch "auslagern" :)

Gruss
 

mrBrown

Super-Moderator
Mitarbeiter
Allerdings muss ich die 2 Tools noch richtig lernen, wüsste jetzt so spontan nicht wie ich da mehrere Profile mit config files erstelle.
Am besten klappt da Learning-By-Doing ;)

Zu diesem speziellen Fall dürfte es auch einige Beispiele geben, zur Not halt hier ;)


das hört / liest sich für mich als sehr interessant an. Hast du da genauere Informationen?
Naja, die meisten Einzelteile dürften dir schon bekannt sein ;)

Projekt läuft mit Maven oder Gradle (das kümmert sich dann um den gesamten Build, Code Analyse, Formatter, Tests, ...).
Das ganze in einem Repo und zB bei GitHub gehostet.
Da gibts dann Anbindung an Continuous Integration, zB Travis. Wenn da das aktivierst wird dein Code bei jedem Push ausgecheckt und gebaut. Das Ergebnis (Erfolgreich/Fehlschlagend) landet dann zB bei GitHub.

Grundsätzlich verstehe ich , dass es gefährlich ist, sich von Produkten abhängig zu machen
Den Punkt sehe ich eigentlich auch bei solchen Standards überhaupt nicht. Es meckert ja auch niemand, dass man jetzt von git und java abhängig ist ;) Wären das jetzt irgendwelche Exoten, wäre das sicher anders - aber die werden so gut wie überall genutzt und haben eine riesige Community hinter sich.

Bisher ist der Entwicklungsprozess lediglich so -> Git Branch erstellen von dev, mergen pushen, review code, that's it. Falls alles okay -> ins Master.
Der Entwicklungsprozess wäre für die Entwickler nicht mal anders zu benutzen ;) Es passiert halt nur mehr automatisch im Hintergrund - zB das vorm review automatische Tests und Code-Analyse laufen (sodass man den Review z.T. automatisieren kann) oder dass nach dem Merge direkt die neue Version bereit steht.

Das einzige was ich noch lokal "ausführe" ist eine Statische Code Analyse & FindBugs.. wie auch code Formatter.. das würde ich später gerne auch "auslagern" :)
Das lässt sich alles wunderbar mit Maven und Gradle (und git) automatisieren ;)
 

cyb0rg

Aktives Mitglied
Am besten klappt da Learning-By-Doing ;)

da kann ich nicht wiedersprechen :)
;)
Naja, die meisten Einzelteile dürften dir schon bekannt sein ;)
Projekt läuft mit Maven oder Gradle (das kümmert sich dann um den gesamten Build, Code Analyse, Formatter, Tests, ...).
Das ganze in einem Repo und zB bei GitHub gehostet.
Da gibts dann Anbindung an Continuous Integration, zB Travis. Wenn da das aktivierst wird dein Code bei jedem Push ausgecheckt und gebaut. Das Ergebnis (Erfolgreich/Fehlschlagend) landet dann zB bei GitHub.

ich verstehe :)
Ist zwar cool, dass es sowas wie Travis gibt, aber ich suche nach einer Lösung die ich selbst hosten kann.
z.B um in GitLab einzubauen, denn sobald ich solche Lösungen nutze die ich bis zu einem gewissen Grad kostenlos nutzen kann, sich plötzlich entscheiden geld von mir zu wollen... ausserdem Travis bietet es kostenlos an für opensource projekte, für private projekte (was die meisten von mir sind) kostet es 80$ (gerundet) im Monat.. es summiert sich halt sobald man das eine oder andere benötigt / will.

Den Punkt sehe ich eigentlich auch bei solchen Standards überhaupt nicht. Es meckert ja auch niemand, dass man jetzt von git und java abhängig ist ;) Wären das jetzt irgendwelche Exoten, wäre das sicher anders - aber die werden so gut wie überall genutzt und haben eine riesige Community hinter sich.

Richtig. Ich habe lediglich die Erfahrung gemacht, dass wenn man nicht ein bisschen drauf achtet, irgendwann mit etwas da steht welches unzällige Abhängigkeiten hat und wenn man Pech hat vielleicht die eine oder andere die Entwicklung eingestellt haben. Aber grundsätzlich gebe ich dir schon recht :)

Der Entwicklungsprozess wäre für die Entwickler nicht mal anders zu benutzen ;) Es passiert halt nur mehr automatisch im Hintergrund - zB das vorm review automatische Tests und Code-Analyse laufen (sodass man den Review z.T. automatisieren kann) oder dass nach dem Merge direkt die neue Version bereit steht.
genau :) nur dass ich gerne diese automatismen auf meine server direkt implementiert haben möchte (falls möglich).

gruss
 

mrBrown

Super-Moderator
Mitarbeiter
ich verstehe :)
Ist zwar cool, dass es sowas wie Travis gibt, aber ich suche nach einer Lösung die ich selbst hosten kann.
z.B um in GitLab einzubauen, denn sobald ich solche Lösungen nutze die ich bis zu einem gewissen Grad kostenlos nutzen kann, sich plötzlich entscheiden geld von mir zu wollen... ausserdem Travis bietet es kostenlos an für opensource projekte, für private projekte (was die meisten von mir sind) kostet es 80$ (gerundet) im Monat.. es summiert sich halt sobald man das eine oder andere benötigt / will.

Gibt ja noch andere als Travis ;) Travis ist halt super einfach, weil es eben nicht selbst gehosted ist.
Jenkins wäre zB eine Alternative, ist etwas komplexer einzurichten und man muss es selber hosten - kann aber auch deutlich mehr.

Richtig. Ich habe lediglich die Erfahrung gemacht, dass wenn man nicht ein bisschen drauf achtet, irgendwann mit etwas da steht welches unzällige Abhängigkeiten hat und wenn man Pech hat vielleicht die eine oder andere die Entwicklung eingestellt haben. Aber grundsätzlich gebe ich dir schon recht :)
Wenn die Entwicklung eingestellt wird, forkt man halt :p
Ist halt immer ein Abwägen zwischen alles selber machen und Abhängigkeiten - und bei den Build-Tools geht das für mich meist eindeutig aus.
 

Barista

Top Contributor
Ich weiß nicht genau ob es für Dich passt,
aber im aktuellen Javamagazin 4.2018 auf Seite 50 gibt es einen Artikel der sich mit diesem (oder zumindest einem ähnlichen) Problem befasst.

Voraussetzung ist aber die Nutzung von Spring
 

cyb0rg

Aktives Mitglied
Jenkins wäre zB eine Alternative, ist etwas komplexer einzurichten und man muss es selber hosten - kann aber auch deutlich mehr.
yeah werd ich mir anschauen hört sich cool an! :)

Wenn die Entwicklung eingestellt wird, forkt man halt :p
Ist halt immer ein Abwägen zwischen alles selber machen und Abhängigkeiten - und bei den Build-Tools geht das für mich meist eindeutig aus.

ack :)

Ich weiß nicht genau ob es für Dich passt,
aber im aktuellen Javamagazin 4.2018 auf Seite 50 gibt es einen Artikel der sich mit diesem (oder zumindest einem ähnlichen) Problem befasst.

Voraussetzung ist aber die Nutzung von Spring

Sprint setze ich im moment noch nicht ein :)
Ist aber auch auf meiner Liste um es anzuschauen :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
raptorrs Plötzlich keine Verbindung zur Datenbank mehr möglich Datenbankprogrammierung 14
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
H MySQL Verbindung Datenbank und Eclipse (Java) Datenbankprogrammierung 5
M H2 Verbindung zur Datenbank komplett schließen Datenbankprogrammierung 11
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
S DB2 Express C - keine Verbindung zur Datenbank Datenbankprogrammierung 2
W Keine ODBC-Verbindung zur MSAccess-Datenbank Datenbankprogrammierung 2
S Auslagern der Datenbank Verbindung Datenbankprogrammierung 2
M Verbindung von Java Programm zur Acccess Datenbank (mdb-Datei) Datenbankprogrammierung 0
J Verbindung zu Derby Datenbank funktioniert nicht Datenbankprogrammierung 14
A Verbindung mit Access 2007 Datenbank herstellen Datenbankprogrammierung 1
I Datenbank Verbindung geht nicht Datenbankprogrammierung 2
A Nach Export mysql Verbindung zur Datenbank nicht möglich, was tun? Datenbankprogrammierung 7
J Verbindung zu Access Datenbank Datenbankprogrammierung 15
J Verbindung zu Datenbank herstellen Datenbankprogrammierung 26
J Java - JDBC Verbindung zur Datenbank nicht möglich Datenbankprogrammierung 10
T MySQL Kann Verbindung zur MySQL Datenbank nicht herstellen. Datenbankprogrammierung 4
T NullPointerException bei Verbindung zur Datenbank Datenbankprogrammierung 4
D Oracle Verbindung mit Java zu Datenbank Datenbankprogrammierung 8
J Verbindung zur Datenbank schlägt fehl... Datenbankprogrammierung 2
C keine Verbindung zur MS-SQL-Datenbank mehr Datenbankprogrammierung 4
Y Keine verbindung mit der Datenbank Datenbankprogrammierung 2
G Verbindung mit Eclipse auf Datenbank einrichten Datenbankprogrammierung 3
U *.mdb Datenbank Verbindung mit Pfadangabe Datenbankprogrammierung 3
M Fehler bei der Verbindung zu einer MSSQL/Express Datenbank! Datenbankprogrammierung 17
P Verbindung zu einer Datenbank Datenbankprogrammierung 6
N Problem mit Verbindung zu externer MySQL Datenbank Datenbankprogrammierung 8
G SSH Verbindung zur (MySQL-)Datenbank Datenbankprogrammierung 6
B JDBC Verbindung zu Access Datenbank Datenbankprogrammierung 6
S Verbindung mit einer lokalen Datenbank namens hsql DB Datenbankprogrammierung 9
C Verbindung zur MySQL Datenbank scheiter. "Bad handshake Datenbankprogrammierung 2
K keine Verbindung zu mysql Datenbank Datenbankprogrammierung 11
L Verbindung zu MySQL-Datenbank Datenbankprogrammierung 2
J Verbindung zur Datenbank MS Access Datenbankprogrammierung 4
J Verbindung mit Interbase-Datenbank herstellen Datenbankprogrammierung 2
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
M Meine Datenbank lässt sich mit meiner Methode nicht ändern Datenbankprogrammierung 1
I SaaS Applikation: pro Kunde eine Datenbank / Schema oder eine DB für alle Kunden? Datenbankprogrammierung 76
T SQL-Statement Datenbank nach SQL Statement schließen? Datenbankprogrammierung 7
M Datenbank Zugraff nach Umwandlung in .jar-Datei nicht mehr möglich Datenbankprogrammierung 4
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
MongoDB-Datenbank in Androidstudio einbinden Datenbankprogrammierung 1
thor_norsk Datenbank: Apache Derby Datenbankprogrammierung 6
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
M Datenbank mit REST API Datenbankprogrammierung 66
M Entfernte Datenbank Datenbankprogrammierung 11
T Datenbank: Tabelle erstellen bei Web-Applikation Datenbankprogrammierung 4
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
M MySQL Datenbank in Array Datenbankprogrammierung 2
S Den letzten Eintrag aus Datenbank ziehen (Oracle SQL Dev.) Datenbankprogrammierung 14
N Datenbank abfragen nach bestimmten Wort Datenbankprogrammierung 7
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
ma095 value NULL- Datenbank Postgresql Spring - intellij community Datenbankprogrammierung 0
Davee SQLite SQLite Datenbank lässt sich nicht auf anderen PCs öffnen Datenbankprogrammierung 8
P Datenbank Tool - besser als oracle SQL Developer gesucht mit effizinte Verbindungsverwaltung Datenbankprogrammierung 2
X JPA (EclipseLink) und Oracle Datenbank Datenbankprogrammierung 2
T Datenbank auf einer Webseite aus einer Exceltabelle erstellen Datenbankprogrammierung 5
L SQL Datenbank Datenbankprogrammierung 7
L SQL Datenbank INSERT INTO Datenbankprogrammierung 6
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7
L SQL Datenbank Tabelle erstellen Datenbankprogrammierung 6
nonickatall MySQL Auf neue Datensätze in einer Datenbank reagieren Datenbankprogrammierung 5
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
anton1 Online Datenbank Datenbankprogrammierung 7
krgewb H2-Datenbank öffnen Datenbankprogrammierung 8
J Datenbank abfragen Datenbankprogrammierung 6
O SQL Abfragen mit Mini Datenbank Datenbankprogrammierung 12
Z Datenbank Choicebox wird nicht befüllt Datenbankprogrammierung 15
S Suche In SQL Datenbank mit array Datenbankprogrammierung 6
P Enum in der Datenbank Datenbankprogrammierung 1
Z SQL- Datenbank 1.PK zu 2.FK Datenbankprogrammierung 3
E netbeans - jsp Daten in Datenbank hinzufügen Datenbankprogrammierung 2
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
MiMa wo Datenbank verbinden/trennen? Datenbankprogrammierung 1
DeltaPilot12 Datenbank connect Funktion Datenbankprogrammierung 7
J Oracle Datenbank-Tabelle per Combobox (oder ähnliches) auswählen Datenbankprogrammierung 3
N SQL Datenbank Spalte in Java Array Datenbankprogrammierung 2
J JAR-Datei und Datenbank Datenbankprogrammierung 8
Bluedaishi Datenbank Abfrage Datenbankprogrammierung 36
Kirby.exe Zeile aus der Datenbank holen wenn ein match besteht Datenbankprogrammierung 7
Kirby.exe Es werden keine Einträge in der Datenbank gemacht Datenbankprogrammierung 23
C Datenbank anlegen und über eine Website mit Daten füllen? Datenbankprogrammierung 25
J Welche Kriterien haben Einfluss auf die Geschwindigkeit einer Datenbank ? Datenbankprogrammierung 4
B Frage zu Datenbank Design bei Events (ZenDesk) Datenbankprogrammierung 1
M SQLite Datenbank mit SQLite Datenbankprogrammierung 7
C String in Datenbank einfügen Datenbankprogrammierung 11
C Keinen Zugrift auf Datenbank Datenbankprogrammierung 2
C Datenbank zugreifen Datenbankprogrammierung 10
L Auf Strato Datenbank zugreifen Datenbankprogrammierung 7
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
G Datenbank Statement Datenbankprogrammierung 22
M Datenbank editierbach machen in JTable Datenbankprogrammierung 13
S Datenbank MySQL und Java Datenbankprogrammierung 8
J Aufbau meiner Datenbank/Tabelle - Verbessern? So lassen? Datenbankprogrammierung 39
J Nur CRUD über Datenbank Klasse, oder auch mehr ? Datenbankprogrammierung 2
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
L Appabsturz mit Datenbank Datenbankprogrammierung 4
J Zahlungseingänge von mehreren Kunden wie am besten abbilden in der Datenbank ? Datenbankprogrammierung 8
L Datenbank sichern Datenbankprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben