我想生成一个 zip 文件,该文件将使用 Maven 更新应用程序。该 zip 将托管在服务器上,我使用程序集插件来生成 zip。不过,我希望 maven 自动生成一个文本文件,将当前版本号存储在 zip 之外。这怎么可能?
编辑:
我使用 Maven 程序集插件和两个描述符成功地创建了两个自定义程序集。其中一个目标是单一目录,它只是根据过滤创建一个包含更新的 version.txt 的文件夹。然后,另一个具有单一目标的文件实际上会打包 zip 文件。这似乎非常不优雅,我想它不会使用整个更新的文件夹正确更新 Maven 存储库。如果有更好的方法来做到这一点,请告诉我。
当然。在 src/main/resources 某处创建一个文本文件,调用它version.txt
(管他呢)
文件内容:
${project.version}
现在在 pom.xml 的 build 元素中,放置以下块:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/version.txt</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>**/version.txt</exclude>
</excludes>
</resource>
...
</resources>
</build>
每次构建后,文件(您可以在目标/类中找到)将包含当前版本。
现在,如果您想自动将文件移动到其他位置,您可能需要通过以下方式执行 ant 任务:maven-antrun-插件.
像这样的东西:
<build>
...
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>process-resources</phase>
<configuration>
<tasks>
<copy file="${project.build.outputDirectory}/version.txt"
toFile="..." overwrite="true" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)