我有一个maven项目,它生成一个jar文件作为web项目。基于Maven,我包含了一个独立的Tomcat。在jar文件中,实际上有一个war-file,它包含我的应用程序。
这个应用程序在src/main/config (或任何类似路径)中包含一个"version.txt“,它最终包含在war文件中。
此version.txt如下所示:
version: ${project.version}
我想,maven应该用pom.xml中的正确版本替换变量。在我的pom.xml中,我包含了:
<build>
<resources>
<resource>
<directory>src/main/config</directory>
<filtering>true</filtering>
<includes>
<include>**/version.txt</include>
</includes>
</resource>
<resource>
<resources>
</build>
那么,有没有办法在(Tomcat)jar文件中的war文件中包含这个version.txt和一个有效的替代文件呢?
附录:
我的文件层次结构如下所示:
jar-file
-- ...
--war-file
---- ...
----version.txt
发布于 2021-08-24 05:11:32
我建议你使用maven-war-plugin。
https://maven.apache.org/plugins/maven-war-plugin/usage.html
它需要一个特定的目录布局,并且在示例中清楚地展示了如何过滤(将maven变量替换为web资源)。
https://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html
如果这个解决方案不够好,那么应该在以后提出一个基于此的更具体的问题。
发布于 2021-08-24 05:38:45
谢谢你的建议。不,没有maven-war-plugin,但我已经包含了它,并且根据说明,它可以工作。
简短的解决方案:
添加了与pom.xml
相同级别的resourceDirectory,并包含version.txt
在pom.xml
中添加,并激活过滤:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<webResources>
<resource>
<filtering>true</filtering>
<directory>externalresources</directory>
</resource>
</webResources>
</configuration>
</plugin>
https://stackoverflow.com/questions/68908150
复制