我有一个Maven项目,其中包含三个资源,如下所示:
src/main/webapp/file.xml
src/main/webapp/fileA.xml
src/main/webapp/fileB.xml
我的目标是使用相同的jenkins任务存档三个不同的战争包,其中每个资源包都被重命名并称为file.xml
。
结果应为:
package-with-file.war
package-with-fileA.war
package-with-fileB.war
fileA.xml
和fileB.xml
file.xml
和fileB.xml
,然后在fileA.xml
中重命名file.xml
file.xml
和fileA.xml
,并在fileB.xml
中重命名file.xml
我想一种方法可以使用profiles
并使用maven-deploy-plugin
为每个软件包定义不同的classifier
和filename
,但是我之前不了解如何重命名文件
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
[...]
<configuration>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<packaging>war</packaging>
<version>${project.version}</version>
<classifier>fileA</classifier>
<file>
${project.build.directory}/${project.build.finalName}-fileA.war
</file>
</configuration>
[...]
</plugin>
答案 0 :(得分:1)
我会将文件放在3个不同的目录中:src/main/webapp-A|B|C/file.xml
然后编写3个不同的maven-war-plugin执行,每个执行都添加以下目录之一:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp-A</directory>
<targetPath>/</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
-编辑1-
我认为不可能从一个目录中进行。您必须使用不同的目录或文件的名称。
答案 1 :(得分:0)
使用reference的maven shade plugin可以轻松完成“文件包含和排除部分”。
使用专用插件http://code.google.com/p/maven-file-rename-plugin/可以重命名文件。