Maven problem z działaniem pliku .JAR

Maven problem z działaniem pliku .JAR
magnusik22
  • Rejestracja:około 9 lat
  • Ostatnio:około 7 lat
  • Postów:17
0

Problem jest dosyć dziwny, ponieważ aplikacja włączana z posiomu IDE (netBeans) działa bez zarzutu, problem zaczął się kiedy chciałem zrobić release.
Aplikacja desktopowa nie działa z poziomu pliku .jar i nie mam tutaj na myśli tego że się nie włącza. Problemem jest przycisk służący do parsowania strony, pomimo tego że reaguje on na kliknięcię, nie pociąga to za sobą żadnych efektów.

Myślę że jest to kwestia konfiguracji Mavena, jednak nigdzie nie potrafię dojść do tego co muszę zmienić, aby aplikacja była użyteczna gdzieś poza IDE.

Jeśli chodzi o release w oparciu o maven to wydaje mi się że zrobiłem go dobrze. Komendą mvn release:prepare pozbyłem sie SNAPSHOT z nazwy pliku. Nie rozwiązało to jednak problemu.

Wrzucam Link do gita z projektem

https://github.com/KamilAntczak/Mercury-Web-Parser-Zadanie-Rekrutacyjne-SkyRise

Proszę o pomoc i z góry dziękuje !

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

A ja idę o zakład że aplikacja jednak nie działa, tylko wali wyjątkami jak klikasz ten guzik bo np. odnosisz się niepoprawnie do jakichś ścieżek.
Odpal tego jara z konsoli przez java -jar twójplik.jar i patrz co się pojawi na konsoli jak klikniesz guzik.
Jeśli to mimo wszystko nie pomoże, to odpal aplikacje w trybie remote debug i podłącz do niej debuger.

edit: albo nic nie zobaczysz skoro w kodzie masz takie cuda jak

Kopiuj
catch(Exception exception)
{}

Ja bym z miejsca uwalił kandydata za taki kod... Tak samo zresztą za te piękne copy-paste tych wszystkich Save... czy za return null który potem wcale nie jest sprawdzany. O publicznych niefinalnych polach nie będę wspominać, bo zaraz ktoś się będzie kłócił że kwestia stylu.
Anyway, kod dość słabo napisany.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 4x, ostatnio: Shalom
magnusik22
  • Rejestracja:około 9 lat
  • Ostatnio:około 7 lat
  • Postów:17
0

Ok, pomijając fakt jak źle piszę i jak bardzo nie ogarniam obsługi wyjątków, zrobiłem tak jak zalecałeś.

Masz rację, program wali błędami na lewo i prawo, nie rozumiem jednak dlaczego w IDE wszystko się kompiluje i działa.

Screen

Dalej wydaje mi się że to kwestia mavena jednak nie mam pojęcia co robić.
Oczywiście szukam w internetach ale byłbym bardzo wdzięczny za pomoc, pozdrawiam.

  • bug.png (109 KB) - ściągnięć: 142
edytowany 8x, ostatnio: magnusik22
TR
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 lata
  • Postów:731
1

skoro twierdzisz, że to wina Mavena to jest na to prosty sposób:

  1. usuń katalog repository z katalogu .m2
  2. mvn clean install

faktycznie rzuca błędem NoClassDefFoundError i to może być to, ale daj mi trochę czasu bo dopiero się wgryzam w Twój kod


musica curat corpus at animam
Sceptyczny Dinozaur
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:390
1
magnusik22 napisał(a):

Ok, pomijając fakt jak źle piszę i jak bardzo nie ogarniam obsługi wyjątków, zrobiłem tak jak zalecałeś.

Masz rację, program wali błędami na lewo i prawo, nie rozumiem jednak dlaczego w IDE wszystko się kompiluje i działa.

Screen

Dalej wydaje mi się że to kwestia mavena jednak nie mam pojęcia co robić.
Oczywiście szukam w internetach ale byłbym bardzo wdzięczny za pomoc, pozdrawiam.

Dziwne, u mnie działa https://ibb.co/b9nPrc

edytowany 1x, ostatnio: Sceptyczny Dinozaur
magnusik22
Włąsnie problem w tym że nie działa poza IDE :D
TR
działa nawet jak odpalisz z terminala, ale robi kupę jak klikniesz Parse WebSite, nawet jak podasz poprawny adres :P
Sceptyczny Dinozaur
@trojanus: @magnusik22: ale jak podasz niepoprawny to działa bardzo dobrze :D ja bym dodał taki disclaimer że poprawne adresy można podawać tylko w wersji płatnej (tu numer konta do przelewu) i wypuścił to do klienta...
BA
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad rok
  • Postów:19
2

Maven nie spakował bibliotek do twojego jara. Wyrzuć z pom.xml całe pluginManagement i zamiast tego dodaj poniższy kod. Potem mvn clean package i powinno działać

Kopiuj
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>com.mercuryparser.Application</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
edytowany 2x, ostatnio: Baniowy
magnusik22
Dziękuje, zaraz spróbuję i zobacze efekty ! :)
TR
ja doceniam, praży ładnie u mnie, szukasz pracy jako release manager? :D
magnusik22
Haha nie nie, tak na prawde to w tym kodzie są moje perwsze linie wyklepane w javie :D Chce się dostać na staż do niedużej firmy. Muszę jeszcze nad tym popracować zanim oddam to zadanie :D
TR
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 lata
  • Postów:731
1

Haha nie nie, tak na prawde to w tym kodzie są moje perwsze linie wyklepane w javie :D Chce się dostać na staż do niedużej firmy. Muszę jeszcze nad tym popracować zanim oddam to zadanie :D

akurat to kierowałem do @Baniowy ;)

@magnusik22: kod działa, jak się go zbuduje i odpali plik -with-dependencies
popracuj nad tymi wyjątkami i tym return null;, bo Ciebie staż ominie :P


musica curat corpus at animam
edytowany 1x, ostatnio: trojanus
magnusik22
No pozostawiłem kilka beboków na "byle działało" :D bardzo dziękuje za podpowiedzi :) Kod w kilku miejsach już odbeboczony :D
BA
@trojanus: Gdzie tam, ja to zwykły klepacz jestem ;)
TR
@Baniowy: łączę się w bólu :D
magnusik22
  • Rejestracja:około 9 lat
  • Ostatnio:około 7 lat
  • Postów:17
0

Dopiero dziś mogłem usiąść przy komputerze ale mieliście rację ! Dziękuję @Baniowy, twój kod rozwiązał problem. Od tego momentu aplikacja działa tak jak powinna odpalana z poziomu pliku .JAR :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.