Maven2 - utworzenie struktury katalogów

0

Mam plik pom.xml który używałem kiedyś w innym projekcie, teraz zmieniłem tylko kilka zależności. Nie mogę sobie poradzić z tym żeby została stworzona odpowiednia struktura katalogów src, src/main/java, src/main/resources, src/test/java itd.
Utworzyłem zwykły Java Projekt w Eclipse, przekopiowałem do głównego katalogu projektu pom.xml, z konsoli w katalogu projektu wydałem polecenie mvn install, później mvn eclipse:eclipse i utworzył się tylko katalog target. Nie ściągnęły się nawet zależności (odpowiednie liby) a nie wyświetlił żadnych błędów. Oczywiście sam mvn w systemie jest zainstalowany i plugin mvn w eclipse też. Żadne działanie z poziomu pluginu mvn w eclipse też nic nie daje, żadne update dependencies, snapshot itd....:|

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>pl.diagno</groupId>
<artifactId>diagno</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>diagno</name>

<build>
	<plugins>
		<plugin>
			<artifactId>maven-compiler-plugin</artifactId>
			<configuration>
				<compilerVersion>1.6</compilerVersion>
				<fork>true</fork>
				<source>1.6</source>
				<target>1.6</target>
			</configuration>
		</plugin>
	</plugins>
</build>

<repositories>
	<repository>
		<id>apache-repo</id>
		<name>Apache Repository</name>
		<a href="http://people.apache.org/repo/m2-snapshot-repository">http://people.apache.org/repo/m2-snapshot-repository</a>
  </repository>
  <repository>
  	<id>ibiblio</id>
  	<name>iBiblio Maven2 Repository</name>
  	<a href="http://www.ibiblio.org/maven2">http://www.ibiblio.org/maven2</a>
  </repository>
  <repository>
  	<id>mavenrepository</id>
  	<name>mavenrepository.com</name>
  	<a href="http://mavenrepository.com">http://mavenrepository.com</a>
  </repository>
</repositories> <dependencymanagement> <dependencies> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.8.1</version> <scope>test</scope> </dependency>
  	<dependency>
  		<groupId>javax.servlet</groupId>
  		<artifactId>servlet-api</artifactId>
  		<version>2.4</version>
  		<scope>provided</scope>
  	</dependency>


  	<dependency>
  		<groupId>org.hibernate</groupId>
  		<artifactId>hibernate</artifactId>
  		<version>3.2.7.ga</version>
  	</dependency>

  	<dependency>
  		<groupId>org.hibernate</groupId>
  		<artifactId>hibernate-annotations</artifactId>
  		<version>3.2.7.ga</version>
  	</dependency>

  	<dependency>
  		<groupId>org.hibernate</groupId>
  		<artifactId>hibernate-entitymanager
  	</artifactId>
  		<version>3.2.7.ga</version>
  	</dependency>

  	<dependency>
  		<groupId>c3p0</groupId>
  		<artifactId>c3p0</artifactId>
  		<version>0.9.1</version>
  	</dependency>


  	<dependency>
  		<groupId>javax.persistence</groupId>
  		<artifactId>persistence-api</artifactId>
  		<version>1.0</version>
  	</dependency>

  	<dependency>
  		<groupId>log4j</groupId>
  		<artifactId>log4j</artifactId>
  		<version>1.2.15</version>
  	</dependency>

  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-core</artifactId>
  		<version>2.5.6</version>
  	</dependency>

  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-beans</artifactId>
  		<version>2.5.6</version>
  	</dependency>

  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-context</artifactId>
  		<version>2.5.6</version>
  	</dependency>

  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-jpa</artifactId>
  		<version>2.5.6</version>
  	</dependency>

  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-aop</artifactId>
  		<version>2.5.6</version>
  	</dependency>

  	<dependency>
  		<groupId>javax.servlet</groupId>
  		<artifactId>jsp-api</artifactId>
  		<version>2.0</version>
  		<scope>provided</scope>
  	</dependency>

  </dependencies>
</dependencymanagement> </project>

A to dziwne bo w zakładce która nazywa się Effective POM są zapisy o tych strukturach katalogów:

<build> <sourcedirectory>C:\Documents and Settings\xxx\workspace\DiagnoManagment\src\main\java</sourcedirectory> <scriptsourcedirectory>C:\Documents and Settings\xxx\workspace\DiagnoManagment\src\main\scripts</scriptsourcedirectory> <testsourcedirectory>C:\Documents and Settings\xxx\workspace\DiagnoManagment\src\test\java</testsourcedirectory> <outputdirectory>C:\Documents and Settings\xxx\workspace\DiagnoManagment\target\classes</outputdirectory> <testoutputdirectory>C:\Documents and Settings\xxx\workspace\DiagnoManagment\target\test-classes</testoutputdirectory> <resources> <resource> <directory>C:\Documents and Settings\xxx\workspace\DiagnoManagment\src\main\resources</directory> </resource> </resources> <testresources> <testresource> <directory>C:\Documents and Settings\xxx\workspace\DiagnoManagment\src\test\resources</directory> </testresource> </testresources> <directory>C:\Documents and Settings\xxx\workspace\DiagnoManagment\target</directory>
0

Struktura katalogów jest inna niż domyślnie w Eclipse. Najłatwiej jest zatem utworzyć nowy projekt z linii poleceń, podmienić pom.xml, później eclipse:eclipse i na koniec zaimportować projekt do IDE.

0

Dzięki Koziołku.

Poza tym takie pytanie mnie naszło. Chciałem stworzyć projekt innego typu więc po mvn archetype:generate z listy wybrałem np. 5. I dostałem dokładnie to co jest w tym temacie:
http://stackoverflow.com/questions/2527961/maven-struts2-modular-archetype-failing-to-generate
Rozwiązanie z tego tematu działa ale w takim razie po co wypisują że wystarczy wpisać numer projektu i ma chodzić skoro chodzi tylko przy kilku numerach... Znalazłem podobny temat na blogu Koziołka i Ty wybrałeś tam numer 18, projekt scala i działało, mi też działa a wiele innych typów nie i jak widać po temacie nie tylko mi. Trzeba wskazać zdalne repo z którego ma pobrać ten schemat. To niech przynajmniej byłoby miejsce na takie wskazanie przy wyborze z tej listy....

0

To nie jest takie proste, wskazać repo. Zresztą nie mam zaufania do tej funkcjonalności ponieważ repozytorium mavena jest żywe jeśli chodzi o archetypy. Poza kilkoma podstawowymi reszta potrafi się zmieniać w bardzo nieoczekiwany sposób. Najłatwiej jest w takim przypadku utworzyć własne archetypy i dodać je do swojego repo, a następnie zaimportować je w repo lokalnym. W ten sposób masz gotowe pod siebie archetypy i nie trzeba nic już kombinować.

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