Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 2 为什么Maven 3放弃支持应用程序$version声明?_Maven 2_Versioning_Version_Maven_Maven 3 - Fatal编程技术网

Maven 2 为什么Maven 3放弃支持应用程序$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},但这两个表达式仍然受支持,您当然不需

正如您从标题中看到的,我想问一下,在3中,pom.xml中不再支持$version。我们真的需要在每个项目中,在每个pom.xml和相关的配置文件中一遍又一遍地写一个常量吗?我们如何避免这样做?我们如何使用$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