Fehler in der POM xml

matze86

Bekanntes Mitglied
Hallo Forengemeinde, ich habe auf mein Hauptrechner (Xubuntu 22.04) mir unter Eclipse seit einiger Zeit ein Mavenprojekt erstellt und mit den Arbeite ich auch schon seit einiger Zeit problemlos. Die Daten werden auf einen zentralen Server bei mir gespeichert.

Jetzt habe ich mir ein Laptop zugelegt (darauf auch Xubuntu 22.04), und die Daten in einen lokalen Ordner eingehängt.
Es wird in Eclipse alles bestens eingelesen.
Allerdings muss etwas mit einer Version (JRE?, Maven? oder was auch immer) nicht stimmen.
Bei jeden import von JavaFX kommt ein Fehler und auch in der pom.xml tritt ein Fehler auf. Und zwar in der 1. Zeile bei "project".
Fehlerbeschreibung:
Code:
Diese Zeile enthält Mehrfachmarkierungen
- cvc-elt.1.a: Cannot find the declaration of element 'project'.
- Downloading external resources is disabled.
Und bei den Importen kommt folgende Meldung:
Code:
The import javafx cannot be resolved

An was kann das liegen?
Einfache Java Programme kann ich ausführen.

Hier nochmal meine pom.xml
XML:
<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>
  <groupId>de.matze</groupId>
  <artifactId>wetter</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Wetterdaten</name>
  <description>liefert wetterdaten</description>
  <properties>
    <maven.compiler.target>18</maven.compiler.target>
    <maven.compiler.source>18</maven.compiler.source>
</properties>
  <build>
      
      
      
  <plugins>
      
    <plugin>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-maven-plugin</artifactId>
        <version>0.0.8</version>
        <configuration>
            <mainClass>wetter.Start</mainClass>
        </configuration>
    </plugin>
</plugins>



</build>
 
 
  <dependencies>
      
      <!-- https://mvnrepository.com/artifact/org.openjfx/javafx-fxml -->
<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-fxml</artifactId>
    <version>23-ea+3</version>
</dependency>

  <dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-controls</artifactId>
    <version>21.0.2</version>
  </dependency>
</dependencies>
 
 
</project>
 
Vermutlich kann Eclipse nicht auf das verlinkte Schema zugreifen. Die Ursache ist nicht ersichtlich: Netzwerk, Proxy, ...?
Du könntest in Eclipse die Validierung von XML-Dateien abschalten.
 
Es werden unterschiedliche FX versionen miteinander vermischt... javafx-fxml und javafx-controls sollten die gleiche version haben.. weiterhin sollte die Version der Java version entsprechen (18)?

Ganz wichtig immer zuerst einmal auf der Plain Command line probieren, ob alles baut...
 
Du könntest in Eclipse die Validierung von XML-Dateien abschalten.
Wo stelle ich das in Eclipse um?
Es werden unterschiedliche FX versionen miteinander vermischt... javafx-fxml und javafx-controls sollten die gleiche version haben..
Die pom.xml liegt ja auf den Server und ist dementsprechend alles das gleiche.
weiterhin sollte die Version der Java version entsprechen (18)?
Ja Ist java 18.
Haupt PC:
Code:
$ java -version
openjdk version "18.0.2-ea" 2022-07-19
OpenJDK Runtime Environment (build 18.0.2-ea+9-Ubuntu-222.04)
OpenJDK 64-Bit Server VM (build 18.0.2-ea+9-Ubuntu-222.04, mixed mode, sharing)

Laptop:
Code:
$ java -version
openjdk version "18.0.2-ea" 2022-07-19
OpenJDK Runtime Environment (build 18.0.2-ea+9-Ubuntu-222.04)
OpenJDK 64-Bit Server VM (build 18.0.2-ea+9-Ubuntu-222.04, mixed mode, sharing)

Ganz wichtig immer zuerst einmal auf der Plain Command line probieren, ob alles baut...
Wie meinst du das?
 
Dann solltest Du auch JavaFX 18 nehmen. Du hast in der POM mehrere Versionen angegeben (21 und 23) und das sollte alles die 18er Version sein, wenn Du Java 18 nutzt (18.0.2 ist die letzte 18er Version).

Aber wieso Java 18? Entweder eine LTS Version (8, 11, 17, 21) oder die letzte non LTS (22). Das wäre zumindest das normale Vorgehen.

Und auf der Kommandozeile übersetzen:
Wenn Du das den Maven Wrapper nutzt, dann wäre es ein einfaches ./mvnw clean package
Ansonsten Apache Maven herunter laden, entpacken und dann nutzen per /path/to/maven/bin/mvn clean package

Wo stelle ich das in Eclipse um?
Damit dürfte https://stackoverflow.com/a/11429419/11484412 gemeint sein.
 
Aber wieso Java 18? Entweder eine LTS Version (8, 11, 17, 21) oder die letzte non LTS (22). Das wäre zumindest das normale Vorgehen.
Weil im Ubuntu Wiki 18 die neueste ist. Ich wusste nicht ob es LTS Versionen gibt.

Bei mir in Eclipse unten Reiter Fenster ist keine Einstellungen vorhanden.

Oder muss ich noch auf den Laptop JavaFX installieren?

Edit: bei der Ausführung von Maven clean kommt folgende Fehlermeldung:
Code:
$ /usr/share/maven/bin/mvn clean package
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.091 s
[INFO] Finished at: 2024-08-18T20:46:49+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] The goal you specified requires a project to execute but there is no POM in this directory (/home/matze). Please verify you invoked Maven from the correct directory. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MissingProjectException

Das schließt, das die POM nicht in mein Home-Verzeichnis ist.
 
Zuletzt bearbeitet:
Du musst den Aufruf natürlich in dem Verzeichnis des Projektes machen. Also da, wo auch die pom.xml liegt.

Und würde mich wundern, wenn Ubuntu im Repository nicht auch ein aktuelles openjdk hätte. Wobei es da auch genug Download-Möglichkeiten gibt, z.B. Adoptium / Eclipse Temurin.
 
Das hat jetzt funktioniert und lief ohne Fehler durch.
Nur die Markierung in der pom.xml das er javafx nicht finden kann bleibt immer noch...

Jetzt habe ich nochmal auf mein Haupt PC getestet, und da steht plötzlich
Code:
Die Projektbeschreibungsdatei (.project) für 'wetter' fehlt. ...
obwohl sie vorhanden ist.

Irgendwie passt das alles nicht.

Vielleicht mache ich auch grundlegend etwas falsch.

Wie macht ihr Profis das, wenn ihr ein Java-Projekt von mehreren PC aus bearbeiten wollt?
Beispiel: Von zu Hause aus auf einen Haupt PC und wenn ihr unterwegs seit auf einen Z.B. Laptop.
 
Wenn alles sauber eingerichtet ist und in den jeweiligen IDEs als Maven Project importiert ist, dann nicht.

Man muss natürlich den Git-Workflow nutzen, spricht Commits / Push / Pull.
 

Zurück
Oben