Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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,如何以特定格式将war的最终名称与项目版本结合起来?_Maven - Fatal编程技术网

使用maven,如何以特定格式将war的最终名称与项目版本结合起来?

使用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="

Tomcat的并行部署功能要求.war文件名采用特定格式

例如:如果项目的版本1正在运行,并且需要热部署版本2,则需要.war名称为“project name##2.war”

我们在项目中使用。因此,我们的版本是例如5.31.6

当我们通过Tomcat manager部署新版本时,我们使用maven构建项目,将文件名重命名为
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

您可以使用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

您可以使用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部署文档对它进行了非常仔细的研究