Maven brakujący artefakt w podprojekcie EAR.

0

Witam. Chciałem zbudować aplikację w Javie EE w oparciu o Maven. Postępuję według tutoriala, z tą różnicą, że korzystam z wtyczki M2 : http://www.jaceklaskowski.pl/w/index.php?title=Tworzenie_aplikacji_Java_EE_5_z_Apache_Maven_2_i_Glassfish

Utworzyłem wszystkie 4 podprojekty i poedytowałem pomy, lecz mam problem przy pliku pom aplikacji EAR. Tak wygląda EAR pom:

<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>pl.ePrzychodnia</groupId>
		<artifactId>ePrzychodniaMaster</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>ePrzychodniaEAR</artifactId>
	<packaging>ear</packaging>
	<name>ePrzychodnia :: ${artifactId}</name>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>pl.ePrzychodnia</groupId>
			<artifactId>ePrzychodniaEJB</artifactId>
			<version>1.0-SNAPSHOT</version>
			<type>ejb</type>
		</dependency>
		<dependency>
			<groupId>pl.ePrzychodnia</groupId>
			<artifactId>ePrzychodniaWAR</artifactId>
			<version>1.0-SNAPSHOT</version>
			<type>war</type>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<artifactId>maven-ear-plugin</artifactId>
				<configuration>
					<modules>
						<ejbModule>
							<groupId>pl.ePrzychodnia</groupId>
							<artifactId>pl.ePrzychodnia</artifactId>
						</ejbModule>
						<webModule>
							<groupId>pl.ePrzychodnia</groupId>
							<artifactId>pl.ePrzychodniaWAR</artifactId>
							<contextRoot>ePrzychodnia</contextRoot>
						</webModule>
					</modules>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

Ale niestety dostaję błędy w linijkach z dependency do moich projektów EJB i WAR

		<dependency>
			<groupId>pl.ePrzychodnia</groupId>
			<artifactId>ePrzychodniaEJB</artifactId>
			<version>1.0-SNAPSHOT</version>
			<type>ejb</type>
		</dependency>
		<dependency>
			<groupId>pl.ePrzychodnia</groupId>
			<artifactId>ePrzychodniaWAR</artifactId>
			<version>1.0-SNAPSHOT</version>
			<type>war</type>
		</dependency>

jest napisane

missing artifact pl.ePrzychodniajar:1.0-SNAPSHOT
, analogicznie przy WAR. Co może być tego przyczyną? To moje pierwsze kroki z Mavenem, starałem się postępować zgodnie z powyższym tutorialem.

Dodam jeszcze pozostałe pomy w razie czego:

EJB

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>pl.ePrzychodnia</groupId>
    <artifactId>ePrzychodniaMaster</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>ePrzychodniaEJB</artifactId>
  <packaging>ejb</packaging>
  <name>ePrzychodnia :: ${artifactId}</name>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

WAR

<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>pl.ePrzychodnia</groupId>
		<artifactId>ePrzychodniaMaster</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>ePrzychodniaWAR</artifactId>
	<packaging>war</packaging>
	<name>ePrzychodnia :: ${artifactId}</name>
	<build>
		<finalName>webapp</finalName>
	</build>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

Nadrzędny pom:

<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>pl.ePrzychodnia</groupId>
	<artifactId>ePrzychodniaMaster</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>ePrzychodnia</name>
	<packaging>pom</packaging>
	<description>Aplikacja internetowa do zarządzania przychodnią.</description>
	<build>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<target>1.5</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
0

Wtyczka działa trochę nie intuicyjnie. Sprawdza czy projekty są już w repozytorium, ale nie bada czy są w workspace. Rozwiązanie to puścić mvn install na projektach i odświeżyć IDE

0

Faktycznie zapomniałem dać install, ale poprawnie tworzy mi ePrzychodniaMaster, ePrzychodniaEJB i ePrzychodniaWAR. Niestety przy ePrzychodniaEAR dostaję błąd:

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] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for pl.ePrzychodniaear:0.0.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ pl.ePrzychodnia0.0.1-SNAPSHOT, C:\Users\Piotr.m2\repository\pl\ePrzychodnia\ePrzychodniaMaster\0.0.1-SNAPSHOT\ePrzychodniaMaster-0.0.1-SNAPSHOT.pom, line 12, column 12
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-ear-plugin is missing. @ line 36, column 12
[WARNING] The expression ${artifactId} is deprecated. Please use ${project.artifactId} instead.
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ePrzychodnia :: ePrzychodniaEAR 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for pl.ePrzychodniajar:1.0-SNAPSHOT is missing, no dependency information available
[WARNING] The POM for pl.ePrzychodniawar:1.0-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.637s
[INFO] Finished at: Thu Oct 03 1554 CEST 2013
[INFO] Final Memory: 5M/105M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project ePrzychodniaEAR: Could not resolve dependencies for project pl.ePrzychodniaear:0.0.1-SNAPSHOT: The following artifacts could not be resolved: pl.ePrzychodniajar:1.0-SNAPSHOT, pl.ePrzychodniawar:1.0-SNAPSHOT: Could not find artifact pl.ePrzychodniajar:1.0-SNAPSHOT -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

W pom.xml w tym projekcie nadal mam w pomie błąd

missing artifact pl.ePrzychodniajar:1.0-SNAPSHOT
i do WARa to samo.

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