使用project.parent.version作为Maven 3中模块的版本的警告
在maven多模块项目中,我希望每个模块始终保持与父代相同的版本,我通常在模块的pom.xml中执行如下操作:
<parent> <groupId>com.groupId</groupId> <artifactId>parentArtifactId</artifactId> <version>1.1-SNAPSHOT</version> </parent> <groupId>com.groupId</groupId> <artifactId>artifactId</artifactId> <packaging>jar</packaging> <version>${project.parent.version}</version> <name>name</name>
自从我开始使用maven 3.0-alpha-5,我得到以下警告。
[WARNING] [WARNING] Some problems were encountered while building the effective model for com.groupid.artifactId:name:jar:1.1-SNAPSHOT [WARNING] 'version' contains an expression but should be a constant. @ com.groupid.artifactId:name::${project.parent.version}, /Users/whaley/path/to/project/child/pom.xml [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]
我很想知道将模块的版本绑定到父版本的真正问题是什么,如果有的话? 或者,当任何expression式(无论是否为project.parent.version)用于版本元素时,都会发生这种情况。
我很想知道将模块的版本绑定到父版本的真正问题是什么,如果有的话? 或者,当任何expression式(无论是否为project.parent.version)用于版本元素时,都会发生这种情况。
那么,这将是很容易testing。 因为我很好奇,我只是用下面的pom为你做的:
<project> <modelVersion>4.0.0</modelVersion> <parent> <artifactId>parent</artifactId> <groupId>com.mycompany</groupId> <version>1.0-SNAPSHOT</version> </parent> <groupId>com.mycompany</groupId> <artifactId>module</artifactId> <version>${myversion}</version> <name>module</name> <url>http://maven.apache.org</url> <properties> <myversion>1.0-SNAPSHOT</myversion> </properties> ... </project>
而maven的确在抱怨:
[WARNING] 'version' contains an expression but should be a constant. @ com.mycompany:module:${myversion}, /home/pascal/Projects/maven-maven3-testcase/module/pom.xml
说实话,我认为maven就在这里,对<version>
元素使用一个属性没有多大意义(至less不能用于project.version),并且很高兴maven抱怨它。
而如果你想在子模块中使用父pom版本, 只要从子poms中移除<version>
标签 ,它们就会inheritance父类的版本。 你现在在做什么只是没用。
- Maven 3关于build.plugins.plugin.version的警告
- Maven没有findJUnittesting运行
- Maven Cobertura插件不会生成coverage.xml
- 如果未在maven中设置资源过滤的环境variables,如何使用默认值?
- 使用maven生成Javadoc HTML?
- IncompatibleClassChangeError:class ClassMetadataReadingVisitor将接口ClassVisitor作为超类
- 如何使用apt-get在Ubuntu 17.04 / 16.10 / 16.04 LTS / 15.10 / 15.04 / 14.10 / 14.04 LTS / 13.10 / 13.04上安装Maven 3?
- 你如何有效地处理maven-3时间戳快照?
- Maven无法解决依赖关系,工件无法parsing