最近,我发现了以下问题:
当我为我的项目设置依赖项管理时,我有一个child-pom,它使用具有依赖项的插件,我想要与在我的依赖项管理中声明的依赖项同步。
在根pom中,我在依赖项管理中声明:
<dependencyManagement>
<dependencies>
...
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>2.4.0</version>
</dependency>
...
<dependencies>
<dependencyManagement>
在子pom中,我有一个插件需要gwt-user:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.4.0</version>
<dependencies>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>2.4.0</version>
</dependency>
...
</dependencies>
...
</plugin>
但是,如果我移除gwt-maven-plugin中使用的依赖版本,编译就会失败。
是不是还有别的办法可以实现呢?
PS:在maven和maven插件中有一个选择依赖版本的相关帖子没有回答我的问题
要让父POM控制子POM使用的插件版本,您应该在父POM的
部分中声明
。
您在
部分中将com.google.gwt:gwt-user
定义为
我不确定您是打算将
gwt-user
用作插件还是作为依赖项,但应该将其列为两者中相同的实体,以便继承工作。
根据以下几个环节来看,似乎是不可能的:
这里是我找到的一个变通方法,我想和大家分享一下,以防其他人也有同样的问题:
在我的根pom中,我定义了一个属性、一个依赖项管理和一个插件管理:
<properties>
<gwtVersion>2.4.0</gwtVersion>
<gwtMavenPluginVersion>2.4.0</gwtMavenPluginVersion>
</properties>
<dependencyManagement>
<dependencies>
...
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>${gwtVersion}</version>
</dependency>
...
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>${gwtMavenPluginVersion}</version>
<dependencies>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>${gwtVersion}</version>
</dependency>
...
</dependencies>
...
</plugins>
...
</pluginManagement>
</build>
并且在我的子pom中,使用插件管理提供的关系(请参见Maven2-Problem with pluginManagement And Pare-Child relationship),我只声明插件依赖项:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
</plugin>
现在,如果我更改属性中的版本,它将自动影响所有直接依赖项和插件依赖项。
我正试图让maven下载所有的依赖项(编译、测试、插件等)。)这样我就可以避免让我们的dockerized构建浪费不必要的时间一遍又一遍地下载它们。 我们已经对maven build进行了dockerized,这样我们就可以从jenkins运行它,而无需在jenkins机器上安装大量构建特定的依赖项(Java、redis、maven依赖项等)。我们的构建依赖于增量docker构建,它只执行实际需要
我试图编译JavaDocs,使用: 我不断出现以下错误: 和 显然,我对多模块/聚合项目的依赖性没有得到认可。在我的一个模块pom中,这两个都标记为依赖项。xml文件。我需要在父pom中为maven javadoc plugin提供额外的参数吗。xml? 编辑: 我运行了mvn安装,它似乎可以工作。我的父母是pom。xml是: 这个版本已经过时了,但这似乎不是问题。
我已经创建了一个构建。war文件的非常简单的Maven项目。Maven Version3.2.3,Java Version1.7.0_67。pom.xml文件就是这个要点。 如果我运行,那么项目构建良好。但是,如果首先下载所有具有和的依赖项,然后运行进行脱机构建,则会出现如下错误。 我从两种方式创建的。m2/repository文件夹不同,使用依赖插件创建的文件夹缺少许多文件,其中大多数与Plex
我正在使用maven shade插件创建一个胖罐子,其中也包括一些弹性城堡罐子。但这造成了问题,因为Bouncy Castle的未签名版本。
我试图从命令行显示我正在使用maven dependency插件版本3.1.2开发的项目的完整依赖关系树,但是目标(以及maven dependency插件中的任何其他目标)没有显示依赖关系。插件的文档(https://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html)声明默认情况下包含所有作用域,因此不需要使用-Dsc
Maven依赖项处理(即下载)是否通过插件完成 Maven是否在秘密使用依赖插件(https://maven.apache.org/plugins/maven-dependency-plugin/)?