Java Wildfly:如何更改WAR部署的模块名称?(不更改WAR文件名)
我有一个maven项目,生成的.war文件名为Java Wildfly:如何更改WAR部署的模块名称?(不更改WAR文件名),java,jboss,wildfly,wildfly-10,jboss-modules,Java,Jboss,Wildfly,Wildfly 10,Jboss Modules,我有一个maven项目,生成的.war文件名为my-project-1.0.0-SNAPSHOT.war。 我尝试用以下代码获取war模块的名称和插槽: Module module = Module.forClass(clazz); ModuleIdentifier identifier = module.getIdentifier(); String name = identifier.getName(); String slot = identifier.getSlot();
my-project-1.0.0-SNAPSHOT.war
。
我尝试用以下代码获取war模块的名称和插槽:
Module module = Module.forClass(clazz);
ModuleIdentifier identifier = module.getIdentifier();
String name = identifier.getName();
String slot = identifier.getSlot();
变量name
的值为deployment.my-project-1.0.0-SNAPSHOT.war
和slot
的值为main
如何在不更改WAR文件名的情况下更改模块名称?
我有一个jboss部署结构.xml
(位于WEB-INF文件夹中,我也在META-INF文件夹中尝试过)文件:
但模块名仍保留为war文件名(my-project-1.0.0-SNAPSHOT.war)
实际上,我想更改模块名称的主要原因是,我使用jboss编组来序列化一些java对象,而ModularClassResolver包含这些模块信息(名称和插槽),这使得在更改项目版本时序列化的数据不兼容,.war文件有另一个文件名
是否有其他方法可以更改项目的模块名称
谢谢您如何部署WAR文件?将.WAR文件复制到部署目录中。我可以使用jboss cli部署它并选择正确的名称,但这里的“标准部署过程”是将文件复制到wildfly的部署目录中。。。在pom.xml文件中。。该文件来自由脚本下载和复制的Nexus(Nexus使用版本命名工件文件)。还有另一个脚本,它收集已部署项目的版本,并解析其文件名。我认为这可能是一个问题-我们在这里也这样做。我认为您需要更新一个或多个脚本来解决此问题。记住,最简单的解决方案就是最好的解决方案!
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<module-alias name="deployment.my-project" slot="main"/>
<dependencies>
<module name="org.infinispan" services="import"/>
<module name="org.infinispan.commons" />
</dependencies>
</deployment>
</jboss-deployment-structure>