Was stimmt hier nicht?

Moin,

schaut euch mal dieses Repository an: https://github.com/kredel/java-algebra-system ich vermute, dass es falsch gebaut wurde oder falsch nach Central übertragen wurde…

Wieso? Nun, wenn ich einfach schreibe:

        <!-- https://mvnrepository.com/artifact/de.uni-mannheim.rz.krum/jas -->
        <dependency>
            <groupId>de.uni-mannheim.rz.krum</groupId>
            <artifactId>jas</artifactId>
            <version>2.7.60</version>
        </dependency>

dann kann meine Anwendung gar nicht compiliert werden, die Imports scheitern:

import jas.core.Compiler;
import jas.core.Node;

wird nicht gefunden.

Wenn ich stattdessen schreibe:

        <dependency>
            <groupId>de.uni-mannheim.rz.krum</groupId>
            <artifactId>jas</artifactId>
            <version>2.7.60</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/external_lib/JAS.jar</systemPath>
        </dependency>

und mir vorher die jar von der Downloadseite https://krum.rz.uni-mannheim.de/jas/ in den Ordner external_lib ziehe, DANN kann ich meine Anwendung übersetzen und in IJ auch starten. (Das ist …btw… aber eher qnd.)

Wenn ich dann jedoch eine jar mit Abhängigkeiten erstellen möchte, so kann ich diese nicht ausführen, da wieder Compiler usw. nicht gefunden werden. Ich muss mich dann eines Tricks bedienen, und die externe jar lokal deployen und dann die jar mit Abhängigkeiten mit mvn assembly:single bauen:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <version>2.5.2</version>
                <executions>
                    <execution>
                        <id>install-external</id>
                        <phase>clean</phase>
                        <configuration>
                            <file>${basedir}/external_lib/JAS.jar</file>
                            <repositoryLayout>default</repositoryLayout>
                            <groupId>de.uni-mannheim.rz.krum</groupId>
                            <artifactId>jas</artifactId>
                            <version>2.7.60</version>
                            <packaging>jar</packaging>
                            <generatePom>true</generatePom>
                        </configuration>
                        <goals>
                            <goal>install-file</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>17</source>
                    <target>17</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>Main</mainClass>
                        </manifest>
                    </archive>
                    <appendAssemblyId>false</appendAssemblyId>
                </configuration>
            </plugin>
        </plugins>
    </build>
<!-- ... -->

        <dependency>
            <groupId>de.uni-mannheim.rz.krum</groupId>
            <artifactId>jas</artifactId>
            <version>2.7.60</version>
            <!--            <scope>system</scope>-->
            <!--            <systemPath>${project.basedir}/external_lib/JAS.jar</systemPath>-->
        </dependency>

Das ist wirklich etwas „nervig“ und es hatte mich heute Nachmittag auch mehrere Stunden geraubt.

Also … was stimmt mit dem Repository nicht? Ich nehme nicht an, die Uni wisse gar nicht, was sie tut.

Danke euch, und immer ein :coffee: griffbereit :wink:

Hab’s mir nicht genau angeschaut, aber meine erste Idee wäre zu schauen, ob es auf GitHub auch schon kaputt ist. Dazu kannst du statt dem Maven Central das JitPack Repo verwenden: https://jitpack.io/

Wenn es damit geht, kannst du entscheiden, ob du so weiterarbeiten willst (was kein Problem ist, ich hatte Projekte, die das jahrelang verwendet haben, weil es die Dependency nur auf GitHub gab), oder ob du die Verantwortlichen anhauen willst, es bitteschön richtig zu publishen.

1 „Gefällt mir“

Moin Landei. :blush: Das ist genau das „Problem“. Auch https://jitpack.io/ kann das Repository nicht bauen und gibt eine Menge Fehlermeldungen aus.

Ich vermute, dass etwas im Repository kaputt ist, kann aber (auch) nix Weiteres dazu sagen… Ich werde erst einmal so weiter machen wie bisher.

*seufz*.

Ähhhmmm…
Das es daran liegen könnte, das das Jar uppercase benannt ist und die Artifact-ID dagegen lowercase ist hast Du ausgeschlossen?

bye
TT

Ähm, was soll ich mit den beiden Antworten anfangen?

Das Repository lässt sich ebenso wenig bauen.

Maven ist case INsensitive.

*doppelseufz*

Die Klassen, die du suchst, sind NICHT in dem repo/maven artifact, auf das du verlinkt hast, sondern indem repo, auf das ich verlinkt habe.

1 „Gefällt mir“

Also in central sieht das ganz gut aus…

Ist Dein Beispiel Projekt auf GitHub zu finden? Dann kann ich mir das mal anschauen?

Gruß
Karl Heinz

1 „Gefällt mir“

Ich denke, weder noch.

Hier ist der Inhalt meiner jar:

$ ll -go
total 100
-rw-r--r-- 1  1742 Jul  5  2021 CasCmdline.class
-rw-r--r-- 1 30438 Jul  5  2021 JGrapher.class
-rw-r--r-- 1  1089 Jul  5  2021 LICENSE
drwxr-xr-x 1     0 Jul  5 06:31 META-INF/
-rw-r--r-- 1 15742 Jul  5  2021 README.md
-rw-r--r-- 1 15597 Jul  5  2021 cas.fxml
drwxr-xr-x 1     0 Jul  5 06:31 jas/
drwxr-xr-x 1     0 Jul  5 06:31 jui/
drwxr-xr-x 1     0 Jul  5 06:31 libs/
drwxr-xr-x 1     0 Jul  5 06:31 misc/
drwxr-xr-x 1     0 Jul  5 06:31 tests/

$ ll -go jas/
total 24
-rw-r--r-- 1 2598 Jul  5  2021 Function.class
-rw-r--r-- 1 7445 Jul  5  2021 MathContext.class
drwxr-xr-x 1    0 Jul  5 06:31 core/
drwxr-xr-x 1    0 Jul  5 06:31 extras/
drwxr-xr-x 1    0 Jul  5 06:31 graph/
drwxr-xr-x 1    0 Jul  5 06:31 utils/

$ ll -go jas/core/
total 49
-rw-r--r-- 1  3312 Jul  5  2021 Assets.class
-rw-r--r-- 1   112 Jul  5  2021 BinLeafNode.class
-rw-r--r-- 1   380 Jul  5  2021 Calculus.class
-rw-r--r-- 1 14125 Jul  5  2021 Compiler.class
-rw-r--r-- 1   130 Jul  5  2021 Evaluable.class
-rw-r--r-- 1   349 Jul  5  2021 JASException.class
-rw-r--r-- 1  1245 Jul  5  2021 LeafNode.class
-rw-r--r-- 1  1292 Jul  5  2021 Mode.class
-rw-r--r-- 1   147 Jul  5  2021 Nameable.class
-rw-r--r-- 1  6699 Jul  5  2021 Node.class
drwxr-xr-x 1     0 Jul  5 06:31 components/
drwxr-xr-x 1     0 Jul  5 06:31 operations/

Ich denke, es sind Teile aus beiden Repos vorhanden.

Es ist nicht klar, was gemeint ist, wenn du von ‚deiner‘ JAR und ‚beiden Repos‘ redest.

Die JAR von de.uni-mannheim.rz.krum:jas:2.7.60 aus der Maven Central enthält KEINE Klasse namens ‚Compiler‘.

Das, was du dort aufgelistet hast, scheint dem oben verlinkten GitHub-repo zu entsprechen, aber ist anscheinend nicht die release von von Releases · JiachenRen/java-algebra-system · GitHub

ManOMan … Ich hatte die jar-Datei 2021 entweder selber gebaut oder heruntergeladen, ich weiß aber nicht mehr, wie und wo. Weißt du noch genau, was du vor 2 Jahren getan hast?

Das Projekt hingegen habe ich erst kürzlich wieder zum Laufen gebracht. Es läuft ja jetzt, deshalb braucht man sich glaube ich nicht weiter streiten hier.

Also, wenn man ein Fehler hat oder ein Fehler findet, würde ich einfach zukünftig mal überlegen, ob man so großen Steinen wirft. UNI weiß nicht, was sie tut. Mir werden Stunden geraubt.

Plot Twist: Du hast dir Stunden selbst geraubt, weil du nicht weißt, was du vorher gemacht hast.

Happy Ending.

AchMist, ich hatte ganz vergessen, dass Unis unantastbar und nicht zu kritisieren sind… ähnlich wie unsere Politiker. :wink: Das zeichnet ja schließlich eine gute Demokratie aus.^^

Also gut, ich verbessere mich: Hervorragende Arbeit, ich habe nichts zu bemängeln.

Nun. Auf den Widerspruch, dass du vorgeschlagen hast, nicht weiter zu streiten, und den letzten Post, brauche ich wohl nicht einzugehen. Allgemeinere Themen, die mit diesem Thread in Verbindung stehen, könnten z.B. das XY-Problem – Wikipedia sein, oder die Frage, welche Annahmen man an welcher Stelle macht - sowohl technische, als auch im Hinblick auf die Frage, wo man „Schuld“ suchen sollte.

Der letzte Punkt, mit der Uni, ist mir etwas zu spezifisch - hat aber mit der Frage der „Schuld“ zu tun, wenn man sich über etwas beschwert, was kostenlos ist, und im speziellen, wenn man sich über Open Source Software beschwert. Die flapsige Aussage ist da „Mach’s besser“ (aka „Pull Requests welcome“). Aber ich sehe auch das Spannungsfeld dazu, dass man manchmal eine Verantwortung übernimmt, der man nicht so gerecht werden kann, wie man das gerne würde - auch über die Zeit hinweg.

Das mit der Zeit bezieht sich darauf, dass es schon selten vorkommt, dass man in einem GitHub-Repo (wie dem zuerst verlinkten) bei den Commit Dates die Zeilen „19 years ago“ und „4 days ago“ sieht. Ich bin sicher, der Verantwortliche dort weiß noch ziemlich genau, was er vor 2 Jahren gemacht hat.

2 „Gefällt mir“

Es ist doch ok. Ich habe verstanden, dass Fehlerhinweise ohne Verbesserungsvorschläge nicht erwünscht sind, und man eine Uni - egal welche - nicht kritisieren darf.

Des Weiteren habe ich ja auch schon mein Projekt zum Laufen bekommen.

Und im Übrigen verstehe ich den Beitrag von @Marco13 nicht. Soll dem Tester und Entdecker eines Fehlers jetzt die Schuld zugeschrieben werden? Das wäre ja so, wenn man zum TÜV muss, Mängel festgestellt werden, und dann sagt, der blö… TÜV-Prüfer sei aber daran schuld … dass die Karre nicht läuft.

Ja. Du hast die Beiträge nicht verstanden.

Musst du auch nicht.

Einerseits deutet nichts, was du bisher geschrieben hast, darauf hin, dass auf die folgenden Nachfragen bzw. Bemerkungen hin eine sinnvolle Antwort kommen könnte, aber sei’s drum:

Ich habe verstanden, dass Fehlerhinweise ohne Verbesserungsvorschläge nicht erwünscht sind, und man eine Uni - egal welche - nicht kritisieren darf.

Du kannst kritisieren wen und was du willst. (Ja, außer diesen besonderen Personengruppen - die unaussprechlichen… du weißt schon). Du musst aber damit rechnen, dass man 1. dich nicht ernst nimmt, wenn du unfundierte Kritik äußerst, 2. dir vorschlägt, es besser zu machen, und die nächsten 20 Jahre damit zu verbringen, ein Java-Computer-Algebra-System zu schreiben und zu warten, und 3. dich Leute noch weniger ernst nehmen, wenn du 1. machst, und dir Leute dann zu verstehen geben, dass sie dich deswegen nicht ernst nehmen, und du darauf mit so einem parabolisch-kindischen Scheißdreck reagierst, wie dem zitierten Satz. Und jetzt kannst du mich gerne für die Deutlichkeit kritisieren, mit der ich dir das gesagt habe. Mir erscheint das halt angebracht.

Soll dem Tester und Entdecker eines Fehlers jetzt die Schuld zugeschrieben werden?

Der „Tester und Entdecker“. Isoliert betrachtet würde ich das lustig finden. So nehme ich an, dass das eine Art Trollversuch sein soll. Aber da ich zumindest die Möglichkeit in betracht ziehen muss, dass du wirklich glaubst, dass das Problem hier nicht auf deine eigene Unfähigkeit zurückzuführen war: Clone das repository. Behebe den Fehler. Erstelle einen Pull Request. Ruhm und Ehre dem Tester und Entdecker.

Was war denn nun genau der „Fehler“? Also das, was die Anderen dort falsch gemacht haben, und was bewirkt hat, dass du deine Zeit mit den Fehlern anderer verschwenden musstest?

2 „Gefällt mir“

Also, so nicht. Mit so viel Realitätsverweigerung rede ich nicht.

Die Karre fährt nicht … sie kommt gerade aus der Werkstatt zurück … das liegt aber keinesfalls an der Werkstatt. :thinking: Finde den Fehler.

Es ist nicht meine Aufgabe, es zu verbessern, ja, das stimmt; aber es ist auch nicht meine Aufgabe, andere dazu anzuhalten, ihrer vermaledeiten Arbeit nachzukommen. Also tue bitte jeder, was er möchte. :wink:

Du hast immer noch nicht gesagt, was das eigentliche Problem war (d.h. die Frage im Titel ist noch nicht beantwortet).

Hi,

ich verstehe das so:

Ich gehe davon aus, dass er nun irgendwie zwei Projekte durcheinander wirft, um daras ein drittes Projekt zu machen. Analog zu dem hier:

Und dann verdaddelt man eine JAR, weil die, weiß Gott woher kommt. Und schon sind alle um einen Schuld.

Der User ist ein bekannter Troll. Ab und an hier seine 3 Minuten fame hat, würde ich sagen, kann man auch beenden an der Stelle.