作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 Maven 编译的 Java 项目,最后 maven-assembly-plugin 用于将编译的 JAR 文件、DLL 等打包到 10 个不同的 ZIP 文件中。每个 ZIP 文件适用于不同的环境(具有不同的 DLL),但它们的内容通常是相同的。
现在我使用 10 个不同的 assembly.xml 文件来创建这 10 个 ZIP 文件。
问题是这些 XML 几乎相同,唯一的区别是 DLL 路径中的 1 个字。此类文件的示例:(实际上它要长得多)
<assembly>
<id>{someVariable}</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<!-- Copying DLLs: -->
<fileSet>
<directory>target/dll/{someVariable}</directory>
<outputDirectory>dll</outputDirectory>
<includes>
<include>*.dll</include>
</includes>
</fileSet>
</fileSets>
</assembly>
{someVariable}
在更多地方这是所需的功能,但我无法使其工作。希望这是可能的,这是我问题的核心。我想用同样的
assembly.xml
文件并始终使用不同的值
{someVariable}
执行 10 次像这样:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-the-zip</id>
<goals>
<goal>single</goal>
</goals>
<phase>package</phase>
<configuration>
<descriptors>
<descriptor>src/assembly/myCommonAssembly.xml</descriptor>
</descriptors>
<properties>
<someVariable>my-value</someVariable>
</properties>
</configuration>
</execution>
</executions>
</plugin>
<properties>
节不起作用,我只是想表明我想做什么。
poml.xml
中创建属性并在
assembly.xml
中使用它们但它并没有解决我的问题,因为我仍然需要创建 10 个不同的 assembly.xml 文件。
最佳答案
您可以使用 iterator-maven-plugin
, 以便迭代所有不同的属性值。这个 Mojo 有一个 iterator
目标允许迭代一组给定的属性,并将它们添加为 Maven 属性:
The iterator-maven-plugin will inject the current value as a property which means you can use this property to parameterize your build.
<plugin>
<groupId>com.soebes.maven.plugins</groupId>
<artifactId>iterator-maven-plugin</artifactId>
<version>0.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>iterator</goal>
</goals>
<configuration>
<items>
<item>my-value-1</item>
<item>my-value-2</item>
<item>my-value-3</item>
</items>
<pluginExecutors>
<pluginExecutor>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
</plugin>
<goal>single</goal>
<configuration>
<descriptors>
<descriptor>${project.basedir}/src/assembly/myCommonAssembly.xml</descriptor>
</descriptors>
</configuration>
</pluginExecutor>
</pluginExecutors>
</configuration>
</execution>
</executions>
</plugin>
package
阶段,此配置将迭代 3 个给定值,
my-value-1
至
my-value-3
, 并且每次执行 Maven Assembly Plugin。对于给定的执行,可以使用
${item}
检索当前迭代值。 .因此,您的通用程序集描述符将变为:
<assembly>
<id>${item}</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<!-- Copying DLLs: -->
<fileSet>
<directory>target/dll/${item}</directory>
<outputDirectory>dll</outputDirectory>
<includes>
<include>*.dll</include>
</includes>
</fileSet>
</fileSets>
</assembly>
关于maven - 如何为 Maven 程序集插件自定义属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39739277/
我是一名优秀的程序员,十分优秀!