Maven: dynamic web project

0

Witam,
Napisałem prosty CRUD na servletach/JSP w Eclipse używając Dynamic Web Project. Próbuje to przerobić na Mavena (pobierać JSP i connector JDBC dzięki artefaktom w pom.xml). Zainstalowałem m2e-wtp, mavena 3.0.6, poustawiałem zmienne środowiskowe. Nie rozumiem dlaczego konfiguracja jest taka skomplikowana.

Samo dodawanie archetypów do mavena to jest banał i jest dla mnie jasne. Sama piękna idea ustandaryzowanej struktury katalogów też jest jasna. Dlaczego tylko nie wiadomo do końca, gdzie mają leżeć strony .jsp tak, aby Tomcat je widział?

Nie rozumiem jednego: gdzie jest w Eclipse gotowy schemat projektu Dynamic Web Project z obsługą Maven? Może powinienem zmienić IDE? To jest jakaś masakra i chyba nieporozumienie.

Zawsze można używać "Convert to Maven Project" dzięki M2E, ale wydaje mi się to mega toporne i niejednoznacznie na Google ludzie z tego korzystają.

Pytania:

  1. Oryginalny Dynamic Web Project w Libraries dołącza Apache Tomcat v6.0 (lub nowszy), gdzie jest mnóstwo .jarów
    Czy tworząc projekt Maven należy znaleźć archetypy wszystkich tych jarów i umieścić je w pom.xml? Raz udało mi się skonfigurować projekt Maven, niestety pluł nullami, podejrzewam, że brakowało mu tych bibliotek, bo do pom.xml dopisałem tylko artefakty dodatkowych jarów poprzednio znajdujących się w WebContent/WEB-INF/lib.
  2. Czy standardowa struktura katalogów Maven to luźna umowa czy też coś poważnego? Mi zależy tylko na budowaniu niezależnym od IDE, nic więcej.
  3. Jak ludzie radzą sobie w dużych projektach, które mają np. milion linii kodu? Przecież to może przerodzić się w jakąś makabrę jak jest źle zarządzane. A troszkę ciężko o dobre zarządzanie takimi projektami jak nie ma schematu, gdzie wszystko powinno leżeć. Będę wdzięczny za wskazanie od czego zacząć.
  4. Moim celem jest nauczyć się tworzyć projekty niezależne od IDE i zaczynam mieć wątpliwości czy Maven to dobra ścieżka. Jeśli nie maven to co? Nie wymagam dużo: chcę tylko, by niezależnie od IDE każdy mógł łatwo zbudować i pracować z moim kodem.

Pozdrawiam,

0

Twój problem polega na tym że zacząłeś klepać nie-przez-mavena i próbujesz przerabiać. Użyj tego "convert to maven project" to będzie prościej.

  1. Nie musisz wrzucać do poma wszystkiego, wystarczy jakiś moduł który agreguje wszystkie pozostałe. Jak wciągniesz jakieś 'servlet' to pewnie pociagnie wszystko czego potrzebuje.
  2. Nie rozumiem pytania. Ta struktura jest jasno okreslona i taka musi być.
  3. Znów nie rozumiem pytania. Jeśli co jest źle zarządzane? Przecież taki projekt to są dziesiątki osobnych modułów mavena.
  4. Nie ma nic innego. Jest ewentualnie Gradle ale on póki co nie daje więcej niż maven i nie ma dobrego wsparcia w IDE.

Jeśli chodz o wsparcie dla mavena to IntelliJ ma lepsze od Eclipse ;)

0

Dziękuje za radę, ale już sobie poradziłem. Hmm przekonwertowałem oryginalny "Dynamic Web Project" na projekt Mavena. Co się stało?

Pojawił się plik pom.xml, więc dołączyłem moje artefakty.
W Libraries pojawiło się Maven Dependencies, które zdefiniowałem w pom.xml i zastąpiły one moje jarki.

Wycofuje poprzednie pytania i wprowadzam następne dwa:

  1. Czy projekt Maven zbuduje się niezależnie od IDE?
    W Libraries mam Apache Tomcat v6. i kilka jarów z nim związanych. Moim zdaniem jest to powód, dla którego się nie zbuduje.
  2. Czy tą bibliotekę TomCat mogę przenieść do pom.xml? Jakie są wady / zalety tego rozwiązania.
0

Dzięki Shalom, trochę mi rozjaśniłeś.

Tak wyglądają moje zależności:

	<dependency>
		<groupId>taglibs</groupId>
		<artifactId>standard</artifactId>
		<version>1.1.2</version>
	</dependency>
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>jstl</artifactId>
		<version>1.1.2</version>
	</dependency>
    <dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>5.1.25</version>
	</dependency>
	
	<!-- Tomcat -->
	<dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>catalina</artifactId>
        <version>6.0.37</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>coyote</artifactId>
        <version>6.0.37</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>jasper</artifactId>
        <version>6.0.37</version>
        <scope>test</scope>
    </dependency>

W tej chwili pobierają bibliotekę Tomcata. Wciąż jest to ten sam Dynamic Web Project z Eclipse po prostu zmienił się sposób dostarczania .jarów. W tej postaci nie jest to skomplikowane.

Pozdrawiam,

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