java – 是否可以在同一个pom.xml中重新定义导入的Maven依赖项?
发布时间:2020-12-15 02:11:06 所属栏目:Java 来源:网络整理
导读:我正在应用程序服务器环境中工作,我正在使用bom来收集依赖项信息,如下所示: dependency groupIdorg.jboss.bom.eap/groupId artifactIdjboss-javaee-6.0-with-security/artifactId version${jboss.bom.version}/version typepom/type scopeimport/scope /dep
我正在应用程序服务器环境中工作,我正在使用bom来收集依赖项信息,如下所示:
<dependency> <groupId>org.jboss.bom.eap</groupId> <artifactId>jboss-javaee-6.0-with-security</artifactId> <version>${jboss.bom.version}</version> <type>pom</type> <scope>import</scope> </dependency> 但是,这个特定的bom将依赖项指定为“编译”,我希望将所有项目的作用域设置为“已提供”.但是,当我尝试覆盖同一个pom中的范围时,我将导入依赖关系,如下所示: <dependency> <groupId>org.picketlink</groupId> <artifactId>picketlink-federation</artifactId> <scope>provided</scope> </dependency> Maven抱怨它找不到版本,或者如果我使用bom中指定的version属性,则无法找到该属性. 我很确定这是同一个pom中导入覆盖的问题,因为我可以在子项目中覆盖范围就好了.有没有办法在一个pom中导入和覆盖范围? *上面的所有代码段都来自同一部分. 解决方法
这肯定是可行的:
<dependencyManagement> ... <dependency> <groupId>org.jboss.bom.eap</groupId> <artifactId>jboss-javaee-6.0-with-security</artifactId> <version>${jboss.bom.version}</version> <type>pom</type> <scope>import</scope> </dependency> ... </dependencyManagement> <dependencies> ... <dependency> <groupId>org.picketlink</groupId> <artifactId>picketlink-federation</artifactId> <scope>provided</scope> </dependency> </dependencies> 请记住,您需要在< dependencies>中重新定义范围,而不是在< dependencyManagement>中重新定义范围.部分. 如果使用继承,则范围覆盖当然会传播到任何子POM. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |