pbi*_*len 7 maven-3 maven maven-assembly-plugin
我maven-assembly-plugin用来组装不同的工件如下:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>configuration-staging</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
<execution>
<id>configuration-production</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
在assembly.xml,我启用了模板过滤:
<fileSets>
<fileSet>
<filtered>true</filtered>
Run Code Online (Sandbox Code Playgroud)
这非常有效.例如,如果我输入${name}要组装的其中一个资源,则将其替换为项目名称.我还可以定义属性pom.xml,它将被插件替换.
现在,我希望每次执行都有不同的属性maven-assembly-plugin.例如,我想介绍一个${url}包含要在目标环境中使用的URL(staging以及production上面的示例).
这可能吗?怎么样?
小智 5
显然,可以为每次执行传递不同的属性,如下所示maven-assembly-plugin:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>configuration-staging</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>staging</finalName>
<filters>
<filter>src/main/assembly/staging.properties</filter>
</filters>
</configuration>
</execution>
<execution>
<id>configuration-production</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>production</finalName>
<filters>
<filter>src/main/assembly/production.properties</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
虽然这没有回答一般问题,但它回答了专门针对 的问题maven-assembly-plugin。
更多信息可以在https://maven.apache.org/plugins/maven- assembly-plugin /examples/single/filtering-some-distribution-files.html 上找到。