grupa201idza / ProjektIO

Repo projektu z Inżynierii Oprogramowania
3 stars 2 forks source link

Maven Tutorial #38

Open Laedos opened 10 years ago

Laedos commented 10 years ago

Maven Tutorial

Wstęp

W naszym projekcie musimy skorzystać z Mavena i poznać jego funkcje. Pozwala on na integrację zdalną i za jego pomocą będziemy mogli dokonać testów jednostkowych.

Instalacja

Wtyczka eclipse

Do naszego projektu proponuję wykorzystać wtyczkę m2e do Eclipse. Do ściągnięcia z poziomu Eclipse: Help > Install New Software > Work With > "http://download.eclipse.org/technology/m2e/releases". Po zaznaczeniu, że chcemy ściągnąć "Maven integration for Eclipse" i podążaniu za wskazówkami zainstaluje nam się plugin, dzięki któremu będziemy mogli dalej pracować. Dzięki temu pluginowi praktycznie całą funkcjonalność Mavena, nie wychodząc z Eclipse.

Instalacja Mavena do konsolowego wykorzystania

Jest możliwość także pracy z Mavenem z poziomu powłoki systemowej. Należy ściągnąć Mavena ze strony apache: http://maven.apache.org/download.cgi#Installation A następnie podążać za instrukcją poniżej w sekcji "Installation Instructions" odpowiedniej dla systemu, który macie na swojej maszynie. Będzie trzeba zmienić swoje zmienne środowiskowe. W zaawansowanych ustawieniach systemu. Dalsze możliwości poznacie dzięki Apach Tutorialom w języku angielskim na stronie http://maven.apache.org/guides/index.html

Testowanie

Mavena będziemy wykorzystywać między innymi do testów jednostkowych. Należy napisać do każdej z klas i odpowiednio umiejscowić w projekcie, poprzednio przekonwertowanym do projektu Maven.

Po dodaniu Maven Dependencies wystarczy uruchomić test Mavena z poziomu Eclipse uruchamiając plik POM.xml jako Maven Test. Prawym > Run as > Maven Test

Wymaga to poprawnego napisania klas jak i testów do nich.


W razie pytań proszę dać znać.

Laedos commented 10 years ago

Proszę aby do 29.05 do wieczora zainstalować już mavena, abym mógł przekonwertować repo projektu.

pemski commented 10 years ago

zainstalowane

pemski commented 10 years ago

Jak teraz mogę tego użyć, żeby projekt hasał? Póki co nic mi się nie udało zrobić... wstyd mi i przykrość:(

Laedos commented 10 years ago

Co dokładnie nie działa?

pemski commented 10 years ago

Po pullu nie mogę skompilować kodu. Error: Could not find or load main class idz.a.input.FileInputAdapter

Laedos commented 10 years ago

Powinno już działać poprawnie.

pemski commented 10 years ago

Działa, choć kilka błędów powyrzucało na wstępie. Doczepił się implementowanych z interfejsu metod, ale jak je usunąłem i quick fixem zaimplementowałem to jest cacy; do tego chciał żebym zaimportował interfejs (a chyba nie ma potrzeby deklarowania takiego importa?:C). Teraz pozostał błąd przy pakiecie, najwyraźniej idz.a.input nie pasuje do oczekiwanego idz.a.input... ale grunt że się kompiluje i działa.

Laedos commented 10 years ago

Zaktualizowano.

pemski commented 10 years ago

Czy Maven Dependencies mamy dodać poprzez PPM na POM.xml > Maven > Add dependency - wpisać id takie, jak w pliku POM i ustawić scope: test?

Laedos commented 10 years ago

Jeżeli po zsynchronizowaniu repo nie ma u was w Eclipsie, w naszym repo czegoś takiego jak "Maven Dependencies" to owszem. Można zrobić tak jak mówisz. Natomiast powinno już to być. Czy pobrałeś repo po commicie ostatnim?

pemski commented 10 years ago

Dependencies są, ale testy nie śmigają. SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. (...)[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ ProjektIO --- [INFO] No sources to compile (...)[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ ProjektIO --- [INFO] No sources to compile [INFO] [INFO] --- maven-surefire-plugin:2.10:test (default-test) @ ProjektIO --- [INFO] No tests to run. Akurat czasu nie mam na zabawę tym, więc tylko zgłaszam

JakubBozecki commented 10 years ago

Jeśli chodzi o tego Mavena: Używać go z poziomu wtyczki do Eclipsa, czy z konsoli cmd?

Podczas realizowania celu archetype:generate przy budowaniu projektu Mavena w poradniku podają jako parametr groupId=com.mycompany.app i jeszcze jako parametr artifactId=my-app Czy to będzie miało jakiś wpływ - trzeba nazwać zgodnie z środowiskiem projektu (np: zamiast my-app -> ProjektIO) - czy też nie ma to znaczenia? (Jest to w przypadku używania Mavena z poziomu lini komend)

Jak udostępnić ProjektIO Mavenowi?

Laedos commented 10 years ago

@pemski Naprawiono, testy już śmigają.

@JakubBozecki W zupełności wystarczy wtyczka Eclipsowa.

Tak, ma to znaczenie. my-app to przykładowy projekt z tego tutoriala który zresztą można ściągnąć.

Projekt stoi już w postaci projektu Mavenowego.

JakubBozecki commented 10 years ago

Super ;) Dzięki