Maven und Spring: "Add to classpath" ?

von Spotz

Aktives Mitglied
Hallo,
ich bin ein Java-Neuling und kenne mich noch nicht gut mit den Maven-Konzepten oder auch manchen anderen Begriffen aus. Ich wollte dieses Tutorial hier durchgehen https://usha-dewasi.medium.com/service-registry-using-spring-cloud-netflix-eureka-cba573c693b und bleibe am Anfang bei
Add org.springframework.boot:spring-cloud-starter-eureka-server on your classpath.
hängen. Ich habe den Begriff von "classpath dependencies" nur hier (https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html) und den begriff "classpath" hier (https://maven.apache.org/shared/maven-archiver/examples/classpath.html) beschrieben gefunden. Ich glaube aber nicht, daß eins davon gemeint ist. Zumindest habe ich keine .jar files von Spring hinzuzufügen. Außerdem beschreibt der maven-docs Eintrag eine Manifest Datei. (oder ist damit die normale pom.xml gemeint?) Kann mir jemand erklären, was das o.g. Tutorial mit dem Satz für eine Aufgabe stellt?

Vielen Dank!

Mit besten Grüßen
von Spotz
 

mrBrown

Super-Moderator
Mitarbeiter
M

Mart

Gast
ich würde dir raten eine IDE als Neuling zu benutzen

zb aus diesem grund in Eclipse
_> maven projekt erzeugen -> pom.xml doppelklicken -> dependency aus der maven website kopieren

andere IDEs: Intellij und VIEEEEEEEEle mehr
mit dem Classpath ganz am anfang rum zu spielen könnte kontra produktiv sien da man da kein erfolgs Erlebnis hat
 

von Spotz

Aktives Mitglied
Direkt nach dem Satz gibt es doch ein Beispiel, zwar also Screenshot des Codes, aber das Konzept sollte doch klar sein.


"dem classpath hinzufügen" meint in dem Tutorial nicht mehr, als es den (normalen) Dependencies hinzuzufügen.
Hallo mrBrown,
danke erstmal für die Antwort.

Naja, als Neuling kann man eben schwer zwischen Redensart und Entität unterscheiden. Und es ist schade, wenn man dann an einer solchen blossen Redensart hängen bleibt, weil man davon ausgeht, daß dies ein feature von Maven ist. Ich bin ja in dem Irrglauben durch die beiden genannten links sichtbar bestärkt worden, daß es eine besondere Art von "classpath dependencies" gibt.

Aber kannst Du mir vielleicht noch erklären, was
a) das dependencyManagement tag macht
und b) was im Kontext von Spring ein "Starter" ist ?

Was es nun mit parent und children auf sich hat, werde ich auch noch herausfinden müssen, sowie ein paar andere Sachen. Aber ich wäre schon einmal froh, wenn der Build von dem Tutorial klappen würde und ich die verwendeten tags verstehen würde.

Vielen Dank!

Mit besten Grüßen
Maximilian von Spotz
 

von Spotz

Aktives Mitglied
Da ist doch weder eine Info, ob eine IDE benutz wird, noch würde die in diesem Fall auch nur das geringste bringen?

(als "Neuling" wäre es aber ratsam, auf Spring zu verzichten...)
Ich benutze Eclipse. Ich werde mir auch noch andere IDEs angucken. Netbeans, IntelliJ, ... Und früher gab es mal eine Java REPL. Ich weiß nicht, ob es das Projekt immer noch gibt. Wäre auch zum Testen nochmal interessant. Eigentlich komme ich von Ruby. Da gibt es den wunderbaren Ruby Version Manager. In Eclipse scheint es etwas ähnliches zu geben mit sonatype, jfrog, ... ? Einen repository manager ? Wäre halt interessant zu erfahren, wo Eclipse die heruntergeladenen dependencies speichert. Aber das ist nicht die Problemdomäne von diesem Thread.
 

von Spotz

Aktives Mitglied
Ich benutze Eclipse. Ich werde mir auch noch andere IDEs angucken. Netbeans, IntelliJ, ... Und früher gab es mal eine Java REPL. Ich weiß nicht, ob es das Projekt immer noch gibt. Wäre auch zum Testen nochmal interessant. Eigentlich komme ich von Ruby. Da gibt es den wunderbaren Ruby Version Manager. In Eclipse scheint es etwas ähnliches zu geben mit sonatype, jfrog, ... ? Einen repository manager ? Wäre halt interessant zu erfahren, wo Eclipse die heruntergeladenen dependencies speichert. Aber das ist nicht die Problemdomäne von diesem Thread.
Ich würde mir für die dependency Verwaltung prinzipiell eher ein command-line tool wuenschen, statt dem Marketplace.
 
K

kneitzel

Gast
Mit dependencyManagement kannst Du z.B. in einem parent POM schon gewisse Dinge festlegen. Wenn ich mehrere Module habe, dann will ich die Versionen nur an einer Stelle erfassen, daher gibt es dann in pluginManagement und dependencyManagement die Plugins bzw. Dependencies. In den jeweiligen Modulen muss dann z.B. keine Version mehr angegeben werden.

Wenn Du Dich mit Spring beschäftigst, dann kannst Du einfach mal ein Projekt erzeugen auf start.spring.io und dann die Dependencies anschauen: In den Dependencies hast Du keine <version>...</version> Angaben. Denn das wird im parent POM alles bereits festgelegt. (Die referenzierte POM kann man sich ja auch mal anschauen - die findet sich auch auf https://mvnrepository.com/ zum herunterladen.

Das Konzept hinter Spring Boot Starters ist ähnlich. Da wird einfach in einem POM einiges an Abhängigkeiten zusammen gefasst. Dadurch musst Du weniger angeben. Siehe dazu z.B. auch https://www.baeldung.com/spring-boot-starters
 

von Spotz

Aktives Mitglied
Mit dependencyManagement kannst Du z.B. in einem parent POM schon gewisse Dinge festlegen. Wenn ich mehrere Module habe, dann will ich die Versionen nur an einer Stelle erfassen, daher gibt es dann in pluginManagement und dependencyManagement die Plugins bzw. Dependencies. In den jeweiligen Modulen muss dann z.B. keine Version mehr angegeben werden.

Wenn Du Dich mit Spring beschäftigst, dann kannst Du einfach mal ein Projekt erzeugen auf start.spring.io und dann die Dependencies anschauen: In den Dependencies hast Du keine <version>...</version> Angaben. Denn das wird im parent POM alles bereits festgelegt. (Die referenzierte POM kann man sich ja auch mal anschauen - die findet sich auch auf https://mvnrepository.com/ zum herunterladen.

Das Konzept hinter Spring Boot Starters ist ähnlich. Da wird einfach in einem POM einiges an Abhängigkeiten zusammen gefasst. Dadurch musst Du weniger angeben. Siehe dazu z.B. auch https://www.baeldung.com/spring-boot-starters
Vielen Dank für die freundliche und umfassende Antwort. In Module und parent/child relationships (https://howtodoinjava.com/maven/maven-parent-child-pom-example/) muß ich mich noch einlesen.

Alles Gute
von Spotz
 
K

kneitzel

Gast
Das Thema ist auch nicht sonderlich komplex finde ich. Aber es ist sehr wichtig, denn darauf basiert extrem viel bei Maven.

Das ist ähnlich wie bei Klassen: Alles erbt von etwas. Und wenn nicht explizit von einer Klasse abgeleitet wird, dann erbt die Klasse von Object.
Bei Maven ist dies dann das Super POM.

Das ist wichtig, denn es gilt ein Grundsatz:
Convention over Configuration

Es wurden viele grundlegenden Dinge festgelegt und so lange Du Dich an diese "Convention" halten willst, musst Du nichts konfigurieren.
Bestes Beispiel:
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>

Das kann man also sehr schön nutzen.

Ich selbst mag aber diese Parent POM nicht wirklich. Ich weiss nicht, ob ich da eine Ausnahme bin, aber bei mir fliegen die Spring Parent POM immer raus. Hintergrund ist, dass ich Herr über mein Projekt sein möchte. Bei jedem Update muss ich sonst die ganze POM vergleichen, was sich da alles ändert. Da sind dann plötzliche Plugins anders konfiguriert oder so. (Am Anfang würde ich Dir das nicht raten - ganz klar. Bleib erst einmal dabei und erspare Dir die Arbeit die sowas mit sich bringt!)

Diese Starter Abhängigkeiten sind aber etwas anderes. Da geht es rein um Abhängigkeiten und durch eine Startet Abhängigkeit bekommt man auch transitive Abhängigkeiten. Das ist etwas wie bei Linux Distributionen die Meta Pakete. Man installiert dann nur ein meta-Paket und das macht eigentlich nichts. Es kommen nur eben die ganzen Abhängigkeiten mit. Das kann zwar auch Probleme bereiten aber das ist deutlich einfacher zu handhaben (finde ich).

Das einfach noch als zusätzliche Erläuterung.
 

von Spotz

Aktives Mitglied
Kleine Frage noch. Wie und wo in dem Projektbaum erstelle ich die application.yml aus dem Turorial? Möchte mir das noch jemand freundlicherweise verraten? (IDE ist wie gesagt Eclipse)

Vielen Dank im Voraus!
 
K

kneitzel

Gast
Das ist eine einfache Text-Datei die JSON zur Konfiguration beinhaltet. Die Konfiguration, die beim Start der App aktiv sein sollte, sollte einfach in den Ressourcen liegen (src/main/resources/). Wenn Du eine Konifguration für Tests hast, die davon abweichen soll, dann sollte diese unter src/test/resources liegen.

Siehe ansonsten auch https://docs.spring.io/spring-boot/.../features.html#features.external-config.files
Da wird halt gezeigt, wo es gesucht wird, aber die resourcen sind ja im classpath und da wird gesucht.
 

von Spotz

Aktives Mitglied
Das ist eine einfache Text-Datei die JSON zur Konfiguration beinhaltet. Die Konfiguration, die beim Start der App aktiv sein sollte, sollte einfach in den Ressourcen liegen (src/main/resources/). Wenn Du eine Konifguration für Tests hast, die davon abweichen soll, dann sollte diese unter src/test/resources liegen.

Siehe ansonsten auch https://docs.spring.io/spring-boot/.../features.html#features.external-config.files
Da wird halt gezeigt, wo es gesucht wird, aber die resourcen sind ja im classpath und da wird gesucht.
Hallo kneitzel!
In Eclipse scheint es keine Möglichkeit zu geben, eine yml (oder auch JSON Datei) in src/main/resources hinzuzufügen, oder etwa doch? Also muß ich die Datei manuell anlegen?
 

von Spotz

Aktives Mitglied
Ich habe die application.yml jetzt einmal im root directory neben der pom.xml erzeugt.
Aber Eclipse meldet 4 Fehlermeldungen.

Einmal
[CODE lang="java" highlight="11"]Description Resource Path Location Type
SpringBootTest cannot be resolved to a type ServiceRegistryApplicationTests.java /service-registry/src/test/java/com/trenchcode/serviceregistry line 6 Java Problem

Ich habe die entsprechende Zeile markiert

package com.trenchcode.serviceregistry;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest // Zeile 6
class ServiceRegistryApplicationTests {

@Test
void contextLoads() {
}

}
[/CODE]


Zweitens

[CODE lang="java" highlight="12"]Description Resource Path Location Type
Test cannot be resolved to a type ServiceRegistryApplicationTests.java /service-registry/src/test/java/com/trenchcode/serviceregistry line 9 Java Problem

package com.trenchcode.serviceregistry;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class ServiceRegistryApplicationTests {

@Test // Zeile 9
void contextLoads() {
}

}
[/CODE]

Drittens:

[CODE lang="java" highlight="6"]
Description Resource Path Location Type
The import org.junit cannot be resolved ServiceRegistryApplicationTests.java /service-registry/src/test/java/com/trenchcode/serviceregistry line 3 Java Problem

package com.trenchcode.serviceregistry;

import org.junit.jupiter.api.Test; // Zeile 3
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class ServiceRegistryApplicationTests {

@Test
void contextLoads() {
}

}
[/CODE]

[CODE lang="java" highlight="8"]
Description Resource Path Location Type
The import org.springframework.boot.test cannot be resolved ServiceRegistryApplicationTests.java /service-registry/src/test/java/com/trenchcode/serviceregistry line 4 Java Problem


package com.trenchcode.serviceregistry;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; // Zeile 4

@SpringBootTest
class ServiceRegistryApplicationTests {

@Test
void contextLoads() {
}

}
[/CODE]

Scheinbar funktioniert das mit dem Markieren der Zeilen nicht. Ich habe stattdessen Kommentare hinter die monierten Zeilen geschrieben.

Die POM.xml:
Java:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.trenchcode</groupId>
    <artifactId>service-registry</artifactId>
    <name>service-registry</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>11</java.version>
    </properties>
 
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
 
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

 
    <repositories>
        <snapshots>
            <enabled>false</enabled>
           </snapshots>
    </repositories>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

Vielen Dank

Mit besten Grüßen
von Spotz
 
Zuletzt bearbeitet:
K

kneitzel

Gast
Also bezüglich dem Anlegen der Datei in Eclipse kann ich nicht viel sagen, da ich Eclipse in der Regel nicht verwende. Aber eine normale Textdatei wird Eclipse auf jeden Fall anlegen können und was anderes ist das ja nicht. (Auch wenn der Text dann gültiges JSON sein muss und das im speziellen im geforderten Format.)

Was die Fehlermeldungen angeht:
Du scheinst da ja auch keinerlei Abhängigkeiten zu JUnit zu haben.

Da würde ich also Abhängigkeiten a.la.
Java:
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>

Und
Java:
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>

erwarten. junit.version musst Du aber natürlich entweder als Property setzen oder das ${junit.version} ersetzen. Aktuell ist 5.7.0 oder so (Das ist eine Abhängigkeit, die ich seltener prüfe - also mag veraltet sein!)

@test ist in JUnit, @SpringBootTest kommt durch die spring-boot-starter-test bzw. die transitiven Abhängigkeiten.

Edit: Und ganz vergessen zu erwähnen: Die Application Config gehört - wie in #12 schon gesagt - in den resource Ordner. Und da solltest Du zwei haben - einmal in src/main/resources und einmal in src/test/resources (So Du ein Standard Maven Projekt hast wie es z.B. von Spring Initializr (https://start.spring.io) erzeugt wird. Wenn Du das Projekt durch irgend einen Eclipse Kram erzeugt hast: Wegwerfen und neu generieren! (Da sollten die oben genannten Abhängigkeiten auch korrekt enthalten sein - da bin ich mir doch recht sicher.)

Ansonsten neigt Eclipse dazu, Sourcen und Resourcen alle einfach in src abzulegen (Also Java Sourcen und Resourcen, Produktionscode und Testcode alles zusammen!)
 
K

kneitzel

Gast
Und ich habe gerade mal einfach ein Projekt ohne weitere Abhängigkeiten von Spring Initializer generieren lassen und die Dependencies angeschaut:
Die Abhängigkeit zu spring-boot-starter-test war schon enthalten - die ist also Standard. Und die Abhängigkeit zu JUnit ist unnötig - JUnit 5.7.2 kommt da automatisch mit als Abhängigkeit.
 
K

kneitzel

Gast
Seit heute 5.8 ;) (dürfte in den nächsten Tagen dann über Maven verfügbar sein, scheint es dort noch nicht zu geben)
Hatte etwas mit versions-maven-plugin gespielt (anderer Thread) und da hat er mir das auch schon mit angegeben. Aber ich habe es noch nicht ausprobiert, wobei ich jetzt erwarten würde, dass er das jetzt kann (Denn die Info kommt ja vom maven central repository oder nicht?)

Aber das 5.7.0 war auf jeden Fall veraltet - da wäre ohne die 5.8 auch die 5.7.2. (Das habe ich auch wegen einem anderen Thread gesehen für den ich mir vorsichtshalber den dependency tree einer Spring Boot Applikation angesehen hatte - finde ich gerade lustig, wie so doch eigentlich unterschiedliche Themen in Threads doch zusammen kommen :) )
 

mrBrown

Super-Moderator
Mitarbeiter
Hatte etwas mit versions-maven-plugin gespielt (anderer Thread) und da hat er mir das auch schon mit angegeben. Aber ich habe es noch nicht ausprobiert, wobei ich jetzt erwarten würde, dass er das jetzt kann (Denn die Info kommt ja vom maven central repository oder nicht?)
Stimmt, gibt's bei Maven Central schon, ist nur in search.maven.org und mvnrepository.com noch nicht indiziert :)
 

von Spotz

Aktives Mitglied
Hallo kneitzel,

Und ich habe gerade mal einfach ein Projekt ohne weitere Abhängigkeiten von Spring Initializer generieren lassen und die Dependencies angeschaut:
Die Abhängigkeit zu spring-boot-starter-test war schon enthalten - die ist also Standard. Und die Abhängigkeit zu JUnit ist unnötig - JUnit 5.7.2 kommt da automatisch mit als Abhängigkeit.
das ist etwas komisch. Ich habe das Projekt von spring initializr generieren lassen.

Tut mir Leid, als Anfänger mit dem Buildsystem ist der Schritt von 0 auf 1 wohl der Schwerste. Schwieriger als die Schritte 1 bis 9.

--

Wenn ich jedenfalls die application.yml in src/main/resources mit dem Inhalt
Java:
server:
  port:8761
 
spring:
  application:
    name:eureka
    
eureka:
  instance:
    hostname: localhost
    
  client:
    register-with-eureka: false
    fetch-registry: false

wie in o.g. Tutorial erstellle bekomme ich bei "Run" eine längliche Fehlermeldung

Java:
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.4.8)

2021-09-13 04:06:21.829  INFO 256685 --- [           main] hello.Application                        : Starting Application using Java 11.0.11 on max-Precision-M4800 with PID 256685 (/media/max/KINGSTON/eclipse/workspace2021/spring-boot-docker/target/classes started by max in /media/max/KINGSTON/eclipse/workspace2021/spring-boot-docker)
2021-09-13 04:06:21.832  INFO 256685 --- [           main] hello.Application                        : No active profile set, falling back to default profiles: default
2021-09-13 04:06:22.579  INFO 256685 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2021-09-13 04:06:22.589  INFO 256685 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2021-09-13 04:06:22.590  INFO 256685 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.48]
2021-09-13 04:06:22.646  INFO 256685 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2021-09-13 04:06:22.646  INFO 256685 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 763 ms
2021-09-13 04:06:22.936  WARN 256685 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server
2021-09-13 04:06:22.939  INFO 256685 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2021-09-13 04:06:22.951  INFO 256685 --- [           main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-09-13 04:06:22.964 ERROR 256685 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server
    at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.3.8.jar:5.3.8]
    at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) ~[spring-context-5.3.8.jar:5.3.8]
    at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.3.8.jar:5.3.8]
    at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
    at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[spring-context-5.3.8.jar:5.3.8]
    at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[spring-context-5.3.8.jar:5.3.8]
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935) ~[spring-context-5.3.8.jar:5.3.8]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.8.jar:5.3.8]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) ~[spring-boot-2.4.8.jar:2.4.8]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:771) ~[spring-boot-2.4.8.jar:2.4.8]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:763) ~[spring-boot-2.4.8.jar:2.4.8]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:438) ~[spring-boot-2.4.8.jar:2.4.8]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) ~[spring-boot-2.4.8.jar:2.4.8]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) ~[spring-boot-2.4.8.jar:2.4.8]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1318) ~[spring-boot-2.4.8.jar:2.4.8]
    at hello.Application.main(Application.java:18) ~[classes/:na]
Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:229) ~[spring-boot-2.4.8.jar:2.4.8]
    at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:43) ~[spring-boot-2.4.8.jar:2.4.8]
    at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) ~[spring-context-5.3.8.jar:5.3.8]
    ... 15 common frames omitted
Caused by: java.lang.IllegalArgumentException: standardService.connector.startFailed
    at org.apache.catalina.core.StandardService.addConnector(StandardService.java:243) ~[tomcat-embed-core-9.0.48.jar:9.0.48]
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:282) ~[spring-boot-2.4.8.jar:2.4.8]
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:213) ~[spring-boot-2.4.8.jar:2.4.8]
    ... 17 common frames omitted
Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1075) ~[tomcat-embed-core-9.0.48.jar:9.0.48]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.48.jar:9.0.48]
    at org.apache.catalina.core.StandardService.addConnector(StandardService.java:239) ~[tomcat-embed-core-9.0.48.jar:9.0.48]
    ... 19 common frames omitted
Caused by: java.net.BindException: Die Adresse wird bereits verwendet
    at java.base/sun.nio.ch.Net.bind0(Native Method) ~[na:na]
    at java.base/sun.nio.ch.Net.bind(Net.java:455) ~[na:na]
    at java.base/sun.nio.ch.Net.bind(Net.java:447) ~[na:na]
    at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:227) ~[na:na]
    at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:272) ~[tomcat-embed-core-9.0.48.jar:9.0.48]
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:227) ~[tomcat-embed-core-9.0.48.jar:9.0.48]
    at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1208) ~[tomcat-embed-core-9.0.48.jar:9.0.48]
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1294) ~[tomcat-embed-core-9.0.48.jar:9.0.48]
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:614) ~[tomcat-embed-core-9.0.48.jar:9.0.48]
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1072) ~[tomcat-embed-core-9.0.48.jar:9.0.48]
    ... 21 common frames omitted

Viele Grüße
 
K

kneitzel

Gast
Das Kernproblem ist bei Dir, dass der Port, den die Applikation verwenden soll, bereits benutzt ist:
Caused by: java.net.BindException: Die Adresse wird bereits verwendet
Bei einem Stacktrace immer runter gehen bis zur Exception, die alles ausgelöst hat.

Sprich: Der Port 8761 wird bereits benutzt und daher kannst Du darauf auch nicht mehr Deine Appikation starten.

Bezüglich der fehlenden Abhängigkeit verstehe ich nicht, wieso diese bei Dir gefehlt hat. Ich habe jetzt auch einmal ein Demo Projekt angelegt, das nur den Eureka Server als Abhängigkeit hat:

Java:
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

Aber egal wieso es gefehlt hat: Mit dieser Abhängigkeit sollten die fehlenden Klassen dann zur Verfügung stehen. Wenn Du noch mit einer module-info.java arbeiten solltest, dann würden da paar requires rein müssen, aber per default sollte spring initializr die nicht mit erstellen.

Und evtl. noch ein paar Worte zu
Tut mir Leid, als Anfänger mit dem Buildsystem ist der Schritt von 0 auf 1 wohl der Schwerste. Schwieriger als die Schritte 1 bis 9.
Hier muss dir nichts leid tun. Das ist alles voll in Ordnung und wir wollen Dir gerne helfen. Wenn wir etwas (meinen) zu sehen, dann ist dies nie als Vorwurf zu verstehen! Gerade am Anfang ist es normal, Fehler zu machen und auch Probleme zu haben, diese zu beheben. Manche Fehler mögen "dumm" oder trivial sein, aber das bezieht sich dann nur auf den Fehler und nicht auf Dich. Ich ecke manchmal mit Leuten an wegen so Aussagen, daher ist es mir wichtig, dies noch einmal zu betonen. (Und es ist auch etwas ganz normales: Jeder macht mal "dumme" Fehler, weil er etwas nicht richtig durchdacht hat. Daher wirklich absolut keine Wertung!)
 

von Spotz

Aktives Mitglied
Vielen Dank kneitzel. :)
Ich kenne auch ein gewisses Angelsächsisches Forum wo Anfänger ziemlich schnell abgebügelt werden.

Leider macht es keinen Unterschied, welchen Port ich wähle. Ich habe jetzt mal port:8552 ausprobiert, aber die Fehlermeldungen bleiben die gleichen.
 
K

kneitzel

Gast
Kannst Du evtl. einmal das Projekt als ZIP einstellen und genau beschreiben, wie Du es testest / ausführst?

Von dem, was ich hier bisher gesehen habe, sieht alles ok aus. Und das entspricht auch etwas dem, was man z.B. bei baeldung als Beispiel hat, wenn man da mit Eureka was machen will: https://www.baeldung.com/spring-cloud-netflix-eureka
Oder direkt bei Spring (dort wird die Config im properties File vorgenommen): https://spring.io/guides/gs/service-registration-and-discovery/

Ich hatte mal kurz überlegt, ob es ein Problem sein könnte, dass der deine Konfiguration nicht lädt, weil es ggf. noch ein leeres application.properties geben könnte (Das im zip des Spring initializr mit drin ist), aber das sollte nicht der Fall sein, denn er sollte laut Dokumentation alle Dateien laden.

Somit sehe ich derzeit keine Gründe, wieso es generell nicht laufen sollte.
 

von Spotz

Aktives Mitglied
Kannst Du evtl. einmal das Projekt als ZIP einstellen und genau beschreiben, wie Du es testest / ausführst?

Von dem, was ich hier bisher gesehen habe, sieht alles ok aus. Und das entspricht auch etwas dem, was man z.B. bei baeldung als Beispiel hat, wenn man da mit Eureka was machen will: https://www.baeldung.com/spring-cloud-netflix-eureka
Oder direkt bei Spring (dort wird die Config im properties File vorgenommen): https://spring.io/guides/gs/service-registration-and-discovery/

Ich hatte mal kurz überlegt, ob es ein Problem sein könnte, dass der deine Konfiguration nicht lädt, weil es ggf. noch ein leeres application.properties geben könnte (Das im zip des Spring initializr mit drin ist), aber das sollte nicht der Fall sein, denn er sollte laut Dokumentation alle Dateien laden.

Somit sehe ich derzeit keine Gründe, wieso es generell nicht laufen sollte.
Guten Morgen!
Ich habe zwei Verzeichnisse. Einmal habe ich das von Spring Initializr erzeugte Paket importiert. Aber scheinbar nicht ganz richtig, weil es sich nicht in meinem Workspace befindet. Und dann habe ich in dem Workspace von Eclipse noch ein Verzeichnis einerseits mit der POM und andererseits mit Dateien, die von Eclipse erzeugt wurden. Soll ich dann nur den Ordner aus der Workbench hochladen? Und kann ich die übers Forum hochladen oder muss ich meinen eigenen FTP benutzen?

Und andere Frage: Wenn ich Deinen in Deinem Link zu baeldung.com wiederum den Link auf https://search.maven.org/classic/#s...rk.cloud" AND a:"spring-cloud-starter-parent" lese und mir die Ergebnisse angucke, wie trifft man denn da eine Auswahl?

Viele Grüße
Maximilian
 
K

kneitzel

Gast
Also ich bin kein Eclipse Spezialist, aber das Projekt sollte schon richtig importiert worden sein. Da werde ich aber im Detail nicht helfen können / Fehler finden und beseitigen können. Also eigentlich solltest Du meiner Meinung nach im Workspace dein Projekt sehen mit pom.xml, src Verzeichnis, ggf. dem maven wrapper (mvnw Scripte und .mvn Verzeichnis) und dem, was so generiert wird (target Verzeichnis).

Und dann wäre das auch das, was ich als zip erwarten würde (nach einem maven clean Aufruf). Da kann dann von eclipse noch ein .project und .classpath dabei sein oder was auch immer Eclipse da so erstellen möchte.

Eine Sache ist ganz wichtig: So ein Maven Projekt ist komplett. Die IDE sind nur Beiwerk, der prinzipiell jederzeit gelöscht werden kann. Das Projekt kann mit maven immer gebaut werden! (Und das ist für mich eine Sache, die ich regelmäßig auch mache. Bei Problemen stelle ich so sicher, dass es nicht an irgend etwas in der IDE liegt).

Was die Wahl der Version angeht:
Hier sehe ich mehrere Möglichkeiten. Wenn Du ein Projekt mit Spring initializr (https://start.spring.io) erzeugst, dann hast Du keine Version von Dir aus zu wählen. Das Projekt hat dann eine Parent POM bei der Du die Spring Boot Version auswählst. Die ganzen Module kommen dann in der Regel automatisch in der richtigen Version. Das ist bei Eureka aber nicht wirklich so, denn da geht es nicht um ein Spring Modul sondern ist eine externe Abhängigkeit.
Und da ist dann der andere Weg wichtig: Man muss sich anschauen, was für Release es gibt. Man greift in der Regel zu der letzten stabilen Version. Welche das hier genau ist, weiss ich nicht. Da hilft ansonsten einfach die Homepage des jeweiligen Projekts das dann auch die Release Notes veröffentlicht und so.

Das ist aber in der Regel auch nicht ganz so entscheidend. Gerade am Anfang muss man nicht zwingend immer die letzte Version nutzen.
 

von Spotz

Aktives Mitglied
Woraus setzt sich denn der Versionsname zusammen?
Zum Beispiel Greenwich.SR3 oder Hoxton.SR12 oder einfach nur eine Jahreszahl und zwei weitere durch Punkt getrennt wie 2020.0.1 ? Ok, das Datum steht da, aber hat das semantisch irgendwas zu bedeuten? Und wofür ist SR die Abkürzung, wenn ich fragen darf?
 
K

kneitzel

Gast
SR würde ich jetzt raten: Service Release. Aber was da die Namen jeweils bedeuten, da muss man man die Entwickler fragen. Und bei Spring Cloud ist das relativ gut dokumentiert: https://spring.io/projects/spring-cloud
Hier wurden einfach Namen für Major Releases eingeführt. Greenwich ist der Spring Boot 2.1.x teil (Willst Du nicht)
Hoxton ist der Spring Boot 2.2 und 2.3 Name. -> Willst Du nicht!
2020.0.x / Ilford -> Das ist der Versionszweig für Spring Boot 2.5 und das willst Du, da Du Spring Boot 2.5.4 nutzt.

Normalerweise sind das einfache Versionsnummern. Also sowas die 2.5.4
Dazu gibt es dann oft Anhänge - üblich ist z.B. -SNAPSHOT. 2.5.4-SNAPSHOT ist die Entwicklung hin zu 2.5.4 - Also es ist noch nicht fertig und nur ein Snapshot der Entwicklung der Version 2.5.4
Oft sieht man sowas wie -BETA -BETA1 -M1 ... Das sind dann alles Veröffentlichungen, die noch nicht final sind (aber natürlich schon genutzt werden können).

Wenn man sich die Spring Entwicklung anschaut, dann sieht man bei Spring Initializr derzeit:
2.5.4 -> aktuelle Version
2.4.10 -> letzte stable Version der 2.4er Reihe.
2.4.11 (SNAPSHOT) -> Das wird mal die neue 2.4.11 ... aber die ist noch nicht fertig. Kannst Du testen um dann ggf. Bugs zumelden oder so.
2.5.5 (SNAPSHOT) -> wie bei 2.4.11 nur eben wird das die nächste 2.5er Version
2.6.0 (M2) -> das ist der zweite Milestone hin zur 2.6er Version.
2.6.0 (SNAPSHOT) -> aktuelle Entwicklung
Unterschied SNAPSHOT vs Milestone: Snapshot ist ein einfacher Zwischenstand, der nach einem commit / push gebaut wird. Ein Entwickler baut Sch,..., dann hast Du da eine nicht funktionierende Version. --> Also wirklich nur Testzwecke!
Milestone wird genau drauf geachtet, was drin ist. Es hat ein Release Prozess stattgefunden. Tests laufen, sieht gut. Wenn du also schon Features von 2.6 brauchst, dann nimm den Milestone.
 
K

kneitzel

Gast
Hallo Kneitzel, ich habe Dir eine PN geschickt.
Ja danke, ich habe es mir schon angesehen. Incls. der Vermutung, dass Du ggf zwei Spring Boot Applikationen startest. Die zwei SprinBootApplication Klassen solltest Du zumindest nicht haben, denn das führt auch dazu, dass die Tests nicht mehr laufen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
thor_norsk Maven Build Failed: kann nicht von start.spring.io generiertes Projekt auf IntelliJ IDE starten Tools - Maven, Gradle, Ant & mehr 8
ExceptionOfExpectation Maven Build Failed: kann nicht von start.spring.io generiertes Projekt auf Eclipse starten Tools - Maven, Gradle, Ant & mehr 20
M Spring Boot Maven pom.xml-Eintrag Tools - Maven, Gradle, Ant & mehr 17
LimDul Maven-Abhängigkeiten im Build prüfen? Tools - Maven, Gradle, Ant & mehr 9
D Maven deployment über WebDAV Tools - Maven, Gradle, Ant & mehr 3
D Maven ear plugin konfigurieren Tools - Maven, Gradle, Ant & mehr 24
F Maven Fehler Tools - Maven, Gradle, Ant & mehr 11
R Maven erzeugt package ohne Bibliotheken (Libaries, Dependencies) Tools - Maven, Gradle, Ant & mehr 10
Oneixee5 Maven deploy - per SSH Tools - Maven, Gradle, Ant & mehr 6
H Maven kein Hauptmanifestattribut Tools - Maven, Gradle, Ant & mehr 10
M Programm mit Maven erstellen und starten samt Abhängigkeiten Tools - Maven, Gradle, Ant & mehr 27
D Interne Dependencies in Maven Tools - Maven, Gradle, Ant & mehr 51
J log4j2 mit Hibernate über Maven Tools - Maven, Gradle, Ant & mehr 10
H Maven JUnit5 Tests werden ignoriert Tools - Maven, Gradle, Ant & mehr 5
thor_norsk Maven Tools - Maven, Gradle, Ant & mehr 32
Ich kann Maven nicht als UmgebungsVariable hinzufügen Tools - Maven, Gradle, Ant & mehr 2
F Maven JAR Plugin Probleme Tools - Maven, Gradle, Ant & mehr 4
W Was "braucht" man denn alles? Maven, Ant, Git, ... Tools - Maven, Gradle, Ant & mehr 21
N Fehler beim Imgui mit Maven Tools - Maven, Gradle, Ant & mehr 7
Encera JavaFX und Maven funktioniert nicht Tools - Maven, Gradle, Ant & mehr 1
B maven multi module Projekt und unnötige/zusätzliche Leerzeilen Tools - Maven, Gradle, Ant & mehr 4
J Maven Konfusion Tools - Maven, Gradle, Ant & mehr 7
Tippster Maven Sqlite integrieren (Eclipse, Maven) Tools - Maven, Gradle, Ant & mehr 4
T Image kreieren mit Maven bei JavaFX und nicht modularen Jars Tools - Maven, Gradle, Ant & mehr 12
T JSON Dependencies in Maven Tools - Maven, Gradle, Ant & mehr 7
T JavaFX, Jar über Maven kreieren Tools - Maven, Gradle, Ant & mehr 2
Encera Libraries Maven Projekt hinzufügen Tools - Maven, Gradle, Ant & mehr 9
Oneixee5 Maven Phase Tools - Maven, Gradle, Ant & mehr 3
Robertop maven copy-resources nicht in WAR Datei Tools - Maven, Gradle, Ant & mehr 2
T Maven: Probleme beim Einbinden der Dependencies Tools - Maven, Gradle, Ant & mehr 9
M Mit Maven eine jar Datei bauen ohne irgendeine main Methode Tools - Maven, Gradle, Ant & mehr 1
M Mit Maven eine jar Datei Bauen ohne irgendeine main Methode Tools - Maven, Gradle, Ant & mehr 18
H Maven Maven: <mainClass>NAME?</mainClass> Tools - Maven, Gradle, Ant & mehr 13
H Maven maven-source-plugin is missing Tools - Maven, Gradle, Ant & mehr 5
M Missing Artifact on selbst gehostestes Maven Paket Tools - Maven, Gradle, Ant & mehr 8
M Error code 409 maven Tools - Maven, Gradle, Ant & mehr 5
M github + maven Fehler beim repository erstellen Tools - Maven, Gradle, Ant & mehr 1
M durch Maven wird "var" nicht gefunden Tools - Maven, Gradle, Ant & mehr 4
N Maven Intellij Maven Projekt erstell keine src Tools - Maven, Gradle, Ant & mehr 4
LimDul Maven Einzelne Unit Tests in Maven Builds skippen Tools - Maven, Gradle, Ant & mehr 3
M Maven jpackage-image wird nicht gefunden Tools - Maven, Gradle, Ant & mehr 22
M javafx wird in einem alten programm nicht bei maven gefunden Tools - Maven, Gradle, Ant & mehr 15
L Maven IntelliJ, Maven und JavaFX + SceneBuilder Tools - Maven, Gradle, Ant & mehr 23
Kirby.exe Projekt mit Maven kompilieren Tools - Maven, Gradle, Ant & mehr 13
P Maven Projekt Abhängigkeiten auf bekante Schwachstellen prüfen Tools - Maven, Gradle, Ant & mehr 4
H Maven dependency Problem ? Tools - Maven, Gradle, Ant & mehr 23
B Maven und Intellij Tools - Maven, Gradle, Ant & mehr 24
P Maven Test werden nicht ausgeführt . Junit . Maven . Surefire . Eclipse Tools - Maven, Gradle, Ant & mehr 12
yakazuqi Maven Eigene API mit Maven einbinden Tools - Maven, Gradle, Ant & mehr 1
M Was ist besser für den Anfang, Maven oder Gradle? Tools - Maven, Gradle, Ant & mehr 6
P Maven Wie die Maven Project version in JSP page verwenden? Tools - Maven, Gradle, Ant & mehr 2
C Maven Multi-Module Projekt Tools - Maven, Gradle, Ant & mehr 2
T Maven Warnings/Fehlermeldungen Tools - Maven, Gradle, Ant & mehr 12
T Maven und Datenbank(treiber) Tools - Maven, Gradle, Ant & mehr 13
T Maven Runnable Jar Tools - Maven, Gradle, Ant & mehr 5
T Grundlagen Maven und Git/Github Tools - Maven, Gradle, Ant & mehr 2
LimDul Maven Maven Surefire Plugin - Warnings upgrade Tools - Maven, Gradle, Ant & mehr 2
G Maven upload Tools - Maven, Gradle, Ant & mehr 0
K Maven - Parent oder Dependency? Tools - Maven, Gradle, Ant & mehr 5
B Maven Maven deploy Tools - Maven, Gradle, Ant & mehr 4
H Jenkins keine Tests gefunden - aber in Maven Tools - Maven, Gradle, Ant & mehr 30
P Mit Maven einen spezifischen Branch nach Tag-Parameter erstellen (in Jenkins-Job) Tools - Maven, Gradle, Ant & mehr 3
P Nur einen Teilbaum in Maven releasen? Tools - Maven, Gradle, Ant & mehr 7
D Cannot invoke "javafx.scene.control.MenuButton.getScene()" nach konvertierung zu maven Tools - Maven, Gradle, Ant & mehr 3
H Maven - keine Durchführung von Tests Tools - Maven, Gradle, Ant & mehr 12
H Jenkins - maven-jar-plugin - kein jar-file Tools - Maven, Gradle, Ant & mehr 38
P JavaFX jar mit Maven Tools - Maven, Gradle, Ant & mehr 9
P Maven & Intellij Modul kann nicht aufgelöst werden Tools - Maven, Gradle, Ant & mehr 12
H Eclipse JUnit erzeugt Fehler im Maven-Test Tools - Maven, Gradle, Ant & mehr 1
H Maven Anfängerproblem - No plugin found for prefix 'archetype' in the current project and in the plugin groups Tools - Maven, Gradle, Ant & mehr 25
sascha-sphw Maven vs Gradle Tools - Maven, Gradle, Ant & mehr 24
D Maven Maven und die Build-Geschwindigkeit Tools - Maven, Gradle, Ant & mehr 11
K Maven IntelliJ + Maven + JavaFX Tools - Maven, Gradle, Ant & mehr 2
J Maven Mit Maven eine ZIP Datei erstellen Tools - Maven, Gradle, Ant & mehr 0
K Maven install schlägt fehl Tools - Maven, Gradle, Ant & mehr 10
I Problem: Maven import extern Lib Tools - Maven, Gradle, Ant & mehr 3
Tom299 Maven Maven funktioniert nach Installation nicht Tools - Maven, Gradle, Ant & mehr 1
I Maven Interface hinzugefügt - Error Tools - Maven, Gradle, Ant & mehr 1
M Verständnisfrage Maven Tools - Maven, Gradle, Ant & mehr 2
S Maven installieren - "Befehl wurde nicht gefunden" Tools - Maven, Gradle, Ant & mehr 1
E Maven: Wie Abhängigkeiten analysieren? Tools - Maven, Gradle, Ant & mehr 0
E Maven Maven distributionManagement Vererbung in child POM Tools - Maven, Gradle, Ant & mehr 8
P Maven Parent- Child POMs Tools - Maven, Gradle, Ant & mehr 13
E Release Kandidaten mit Maven bauen Tools - Maven, Gradle, Ant & mehr 4
C Orderstruktur bei Libarys - Wie mit Ant oder Maven lösen? Tools - Maven, Gradle, Ant & mehr 0
G Maven, finde Dependency nicht... Tools - Maven, Gradle, Ant & mehr 2
G Maven Continious Integration mit Jenkins, Maven und Nexus - wie richtig? Tools - Maven, Gradle, Ant & mehr 1
P Maven Parent und Child Poms - dependencies Tools - Maven, Gradle, Ant & mehr 1
reibi Maven Maven + Eclipse Tools - Maven, Gradle, Ant & mehr 0
P Maven add resource Tools - Maven, Gradle, Ant & mehr 0
D [Maven Pluginentwicklung] - Plugin das nur auf Parent pom läuft Tools - Maven, Gradle, Ant & mehr 0
S Maven Maven und Auflösen von JSF EL Tools - Maven, Gradle, Ant & mehr 5
H Maven HSQLDB in den Maven lifecycle einbinden Tools - Maven, Gradle, Ant & mehr 5
S Maven Unterschiedliche Deployments mit Maven Tools - Maven, Gradle, Ant & mehr 2
S Maven buildnumber-maven-plugin / Formatproblem mit timestamp Tools - Maven, Gradle, Ant & mehr 17
P Erzeugen von WebServices mit Maven und Eclipse (external Tool) Tools - Maven, Gradle, Ant & mehr 2
aze Maven downgraden von 3.x auf 2.09 unter Linux Tools - Maven, Gradle, Ant & mehr 4
Rudolf JSF und Maven mit Eclipse Tools - Maven, Gradle, Ant & mehr 5
M Maven-Dependency kann nicht gefunden werden Tools - Maven, Gradle, Ant & mehr 2
M Maven imports aus Modulen Tools - Maven, Gradle, Ant & mehr 4

Ähnliche Java Themen

Neue Themen


Oben