Chyba zepsułem sobie projekt, co robić.

0

Dobra, po pół godziny goglowania muszę szukać pomocy na forum (a nienawidzę tego robić). Mam sobie projekt w javie+gradle. Do tej pory wszystko śmigało, robiłem sobie buildy, tworzyły się *.jary i wszystko.

Teraz chyba coś zepsułem. Projekt ma tylko jedną zależność, program w IDE się odpala, ale jak próbuję odpalić go z jara tak:

java -jar Debug.jar to dostaję tylko taki dziwny output:
dyn4j v3.1.5
Żadnego stacktrace'a ani nic.

build.gradle

apply plugin: 'java'

repositories {
    jcenter()
}

dependencies {
    compile group: 'org.dyn4j', name: 'dyn4j', version: '3.1.5'
}

Dziwne bo jeszcze godzine temu klikałem dwa razy na jara i się włączało wszystko.

0

podaj META-INF/MANIFEST.MF z jarka

0

najlepiej sobie robić kopie zapasowe poszczególnych wersji, w razie coś wracasz do działającej

0

po pierwsze kontrola wersji z często robionymi commit-ami - wtedy problemu nie ma.
po drugie przenieść projekt w inne miejsce i spróbować czystego builda
po trzecie podaj tyle informacji ile się tylko da (logi z builda).

0

Kontrola wersji średnio bo jedyne co trzymam w repozytorium to plik 'build.gradle'. Reszta, te zależności są ściągane u tego kto je programuje, przez gradle'a.

Odkryłem że mimo że mam plik META-INF/MANIFEST.FM w folderze, i mimo że w Project Structure (IntelliJ) kliknięte dokładnie co chce mieć w jarze (łącznie z manifestem); to w wynikowym *.jarze jest manifest nie mój

Manifest-version: 1.0
Main-Class: riddle.Application.Application

tylko ten

Manifest-Version: 1.0
Main-Class: org.dyn4j.Version
Name: dyn4j
Implementation-Title: Java Collision Detection and Physics Engine
Implementation-Version: 3.2.2
Implementation-Vendor: dyn4j.org

Czyli dokładnie ten sam plik z tej zależności której używam.
https://github.com/wnbittle/dyn4j/blob/master/src/META-INF/MANIFEST.MF

Dodam że na mavenie ta sama konfiguracja artifactów działała. Więc wiem czemu teraz się nie włącza, ale nie wiem czemu gradle wpieprza nie mój manifest do *.jara. Zaraz będę na kompie to dodam screena z konfiguracją, może ktoś będzie wiedział.

PS: Oto screen z konfiguracją z IntelliJ. build.gradle taki jak poprzednio.
a0573f1ac9.png

0

Jeśli chodzi o "inżynierię oprogramowania" to projekt powinien dać się zbudować poprzez:

  • skasowanie (backup!) aktualnego katalogu z projektem i plikami roboczymi IDE
  • ew. uruchomienie poniższego na świeżej wirtualce
  • ponowne ściągnięcie projektu z SVN/GIT
  • uruchomienie gradle

Jest 1000 rzeczy które mogły pójść nie tak, ale ten proces powyżej powinien się udać.
Komunikat może być w ogóle nie związany z problemem - np. może pokazywać się zawsze tylko go wcześniej nie zauważyłeś bo aplikacja startowała.
Nie znam IDEA, ale w Eclipsie jest opcja "uruchom z wyczyszczeniem projektu".

Tu coś na temat: https://intellij-support.jetbrains.com/hc/en-us/community/posts/206296559-Cleaning-out-IntelliJ-Cache
http://stackoverflow.com/questions/17561826/how-to-clean-project-cache-in-intellij-idea-like-eclipses-clean

0

Nawet jest opcja explicitly wybrać który manifest chcę, ale i tak dołącza mi ten z zależności.
762fc90a95.png

0

Co do c****... własnie sobie programowałem, odpalając program kilka razy przez IDE, i nagle klikając build stworzył się *.jar który się normalnie uruchomił ;| Chyyyyba pora iść spać.

Ps: już działa jak coś, dziękuję wszystkim którzy się udzielili.

1

przy imporcie przez gradla dopisz exclude Manifest tej zależności. Twój problem polegał na tym że do wynikowego jara pakował Ci manifest zarówno twój, jak go później nadpisywał przez manifest zależności (tak na 95%). to że Ci nagle zadziałało nie znaczy że wiesz w czym był problem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1