使用maven,如何以特定格式将war的最终名称与项目版本结合起来?
Tomcat的并行部署功能要求.war文件名采用特定格式 例如:如果项目的版本1正在运行,并且需要热部署版本2,则需要.war名称为“project name##2.war” 我们在项目中使用。因此,我们的版本是例如5.31.6 当我们通过Tomcat manager部署新版本时,我们使用maven构建项目,将文件名重命名为使用maven,如何以特定格式将war的最终名称与项目版本结合起来?,maven,Maven,Tomcat的并行部署功能要求.war文件名采用特定格式 例如:如果项目的版本1正在运行,并且需要热部署版本2,则需要.war名称为“project name##2.war” 我们在项目中使用。因此,我们的版本是例如5.31.6 当我们通过Tomcat manager部署新版本时,我们使用maven构建项目,将文件名重命名为project name##053106.war,并将其上载到服务器。此过程是手动的,容易出错 我们的版本在pom.xml中设置如下: <project xmlns="
project name##053106.war
,并将其上载到服务器。此过程是手动的,容易出错
我们的版本在pom.xml
中设置如下:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.group</groupId>
<artifactId>project-name</artifactId>
<version>5.31.6</version>
<packaging>war</packaging>
<name>Project Name</name>
<description>Project Description</description>
...
</project>
4.0.0
br.com.group
项目名称
5.31.6
战争
项目名称
项目说明
...
我们在配置文件中设置最终名称,例如:
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profilelabel>LOCAL</profilelabel>
</properties>
<build>
<finalName>project-name-local</finalName>
</build>
</profile>
<profile>
<id>production</id>
<properties>
<profilelabel>PRODUCTION</profilelabel>
</properties>
<build>
<finalName>project-name</finalName>
</build>
</profile>
</profiles>
地方的
真的
地方的
项目名称本地
生产
生产
项目名称
我的问题是:在上面的例子中,我如何构建war文件,最终名称与版本号连接在一起,没有点,如果可能的话,版本“str_pad”的每个“部分”都是ed(5.31.6变成053106)
- 使用profile local:project name local##053106.war
- 使用profile prod:project name##053106.war
project.version
,并将其分配给属性(全部在初始化阶段)。举个例子,,
它处理带有-SUFFIX
部分的版本(为了安全起见,它处理多个破折号的情况):
yourProjectName-${paddedVersion}
org.codehaus.gmaven
gmaven插件
1.4
初始化
执行
println('Mangling project version:'+project.version)
字符串[]versionParts=project.version.split(“-”)
paddedVersion=versionParts[0]。拆分(\\。)。收集{it.padLeft(2,“0”)}.join()
如果(versionParts.size()>1){
paddedVersion+=“-”+版本部件[1..-1]。联接(“-”)
}
println('填充版本:'+填充版本)
project.properties[“paddedVersion”]=paddedVersion
您可以使用gmaven插件以任何所需的方式损坏project.version
,并将其分配给属性(全部在初始化阶段)。举个例子,,
它处理带有-SUFFIX
部分的版本(为了安全起见,它处理多个破折号的情况):
yourProjectName-${paddedVersion}
org.codehaus.gmaven
gmaven插件
1.4
初始化
执行
println('Mangling project version:'+project.version)
字符串[]versionParts=project.version.split(“-”)
paddedVersion=versionParts[0]。拆分(\\。)。收集{it.padLeft(2,“0”)}.join()
如果(versionParts.size()>1){
paddedVersion+=“-”+版本部件[1..-1]。联接(“-”)
}
println('填充版本:'+填充版本)
project.properties[“paddedVersion”]=paddedVersion
除了有不同的名字之外,你真正想做什么?一般来说,如果您可以让一个工件在任何地方运行,并将其他所有东西(如配置)外部化,则更好。要使用Tomcat的热部署功能,需要将版本号附加到文件名中,因此,将接收新会话的版本将是最大的版本。我希望在构建过程中能够自动将版本号添加到生成的WAR文件中,并通过manager上传。我希望看到一些关于“Tomcat热部署功能要求.WAR文件名采用特定格式”的文档我以前从未听说过它,所以我仔细查看了ApacheTomcat部署文档,没有发现任何与此相关的内容…@SteveC在做了一些研究之后,我认为我误用了“热部署”这个术语。看看这些文档,正确的一个是“并行部署”,下面是指向这些文档的链接:我应该在问题的描述中对其进行更改。除了使用不同的名称之外,您真正想做的是什么?一般来说,如果您可以让一个工件在任何地方运行,并将其他所有东西(如配置)外部化,则更好。要使用Tomcat的热部署功能,需要将版本号附加到文件名中,因此,将接收新会话的版本将是最大的版本。我希望在构建过程中能够自动将版本号添加到生成的WAR文件中,并通过manager上传。我希望看到一些关于“Tomcat热部署功能要求.WAR文件名采用特定格式”的文档我以前从未听说过它,因此通过ApacheTomcat部署文档对它进行了非常仔细的研究