我已经在pom类型的项目中声明了所有spring依赖项并安装了它。
我的项目使用公共依赖关系pom的pom如下。但似乎maven没有使用/无法找到依赖关系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>com.bookme</groupId>
<artifactId>portal</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>portal</name>
<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.bookme.common</groupId>
<artifactId>common-dependencies</artifactId>
<version>1.0</version>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>6.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
谁能告诉我,我做错了什么? 感谢
答案 0 :(得分:2)
您是否已将依赖性pom安装到本地m2存储库?
将scope
import
添加到您的依赖项pom。查看here了解更多详情
<dependencyManagement> <dependencies> <dependency> <groupId>com.bookme.common</groupId> <artifactId>common-dependencies</artifactId> <version>1.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
还要考虑以下事实
不要尝试导入在子模块中定义的pom 目前的pom。尝试这样做会导致构建失败 因为它无法找到pom。
永远不要声明pom导入pom作为父母(或祖父母, 等目标pom。没有办法解决循环问题 并且会抛出异常。
当引用其poms具有传递依赖性的工件时 该项目需要将这些工件的版本指定为 托管依赖项。不这样做会导致构建失败 因为工件可能没有指定版本。 (这应该是 在任何情况下都被视为最佳实践,因为它保留了版本 从一个构建到下一个构建的工件。