Maven 2 为什么Maven 3放弃支持应用程序$version声明?
正如您从标题中看到的,我想问一下,在3中,pom.xml中不再支持$version。我们真的需要在每个项目中,在每个pom.xml和相关的配置文件中一遍又一遍地写一个常量吗?我们如何避免这样做?我们如何使用$version这样的版本控制方法?在顶部Maven 2 为什么Maven 3放弃支持应用程序$version声明?,maven-2,versioning,version,maven,maven-3,Maven 2,Versioning,Version,Maven,Maven 3,正如您从标题中看到的,我想问一下,在3中,pom.xml中不再支持$version。我们真的需要在每个项目中,在每个pom.xml和相关的配置文件中一遍又一遍地写一个常量吗?我们如何避免这样做?我们如何使用$version这样的版本控制方法?在顶部元素中使用宏,而元素中的版本在maven 2中从未起作用。它似乎起了作用,但只在下游引起了混乱。如果这不是您要说的,请澄清您的问题。表达式${version}已被弃用,您应该改用${project.version},但这两个表达式仍然受支持,您当然不需
元素中使用宏,而
元素中的版本在maven 2中从未起作用。它似乎起了作用,但只在下游引起了混乱。如果这不是您要说的,请澄清您的问题。表达式${version}
已被弃用,您应该改用${project.version}
,但这两个表达式仍然受支持,您当然不需要自定义属性
以下内容对我使用Maven 3非常有用:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>services</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
${project.groupId}
,您使用version
(基于我在另一个答案中的评论)的方式没有多大意义,IMHO和Maven 3实际上建议遵循最佳实践。只需继承版本。下面的错误显示了对$(artifactId}
和${version}
[警告]表达式${artifactId}已弃用。请使用
改为${project.artifactId}。[警告]表达式${version}为
已弃用。请改用${project.version}。[警告]
[警告]强烈建议修复这些问题,因为它们
威胁到你构建的稳定性。[警告][警告]为此
原因是,未来的Maven版本可能不再支持Building
格式错误的项目
警告消息说明了这一点。将${artifactId}
替换为${project.artifactId}
,将${version}
替换为${project.version}我说的是${projectVersion}声明。我们可以编写${projectVersion},而不是像0.1那样编写版本以前,但在maven3中,它不支持它。我从它在干净安装时发出的警告中理解它。在控制台上,它清楚地说“版本必须是常量”。然而,在maven3之前,它从未发出过这样的警告。因此,在maven3中,${projectVersion}声明(例如我的示例)版本之间的标记不再受支持。因此,是否有任何想法或方法使我能够再次使用它?在什么内容中?在普通依赖项或内部?${project.version}的问题在哪里通常你不需要。如果你发布一个新版本,它会自动用新版本替换旧版本。所以我认为没有必要使用宏?您好,这里是top pom.xml;4.0.0 com.mp.myproject myproject Maven Main pom 2.3${projectVersion}中的内容…../myproject_domain../myproject_ejb../myproject_web../myproject_ear Ok,模块中的其他pom.xml有:myproject com.mp.myproject${projectVersion}../myproject/pom.xml