要求:将一个附加文件(文本格式发行说明文件)连同jar / war一起上载(部署)到联系。
可能的解决方案:如下使用maven deploy plugin
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<packaging>RELEASENOTE.MD</packaging>
<generatePom>false</generatePom>
<url>${project.distributionManagement.repository.url}</url>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
<file>RELEASENOTE.MD</file>
</configuration>
</execution>
</executions>
</plugin>
问题:
RELEASENOTE.MD
文件是可选的。该文件仅在存在时才应部署。如果文件不存在,上述解决方案将引发错误。[错误]无法执行目标
org.apache.maven.plugins:maven-deploy-plugin:2.4:deploy-file(默认)
在项目上... \ RELEASENOTE.MD找不到。
需要一个选项以正则表达式指定文件名(例如:
*RELEASENOTE.MD
)。 maven deploy plugin
不接受正则表达式。[错误]无法执行目标
org.apache.maven.plugins:maven-deploy-plugin:2.4:deploy-file(默认)
在项目上... *未找到RELEASENOTE.MD。
如何解决这两个问题?
最佳答案
将发行说明的部署移动到其自己的Maven配置文件,并仅在存在发行说明文件的情况下激活该配置文件。
<profiles>
<profile>
<activation>
<file>
<exists>RELEASENOTE.MD</exists>
</file>
</activation>
<!-- deployment of release notes declarations here -->
</profile>
</profiles>
有关更多信息,请参见Introduction to Build Profiles。
关于正则表达式要求,您应该为发行说明设置命名策略,并将其实现为可由Maven构建访问的变量。 build helper maven plugin可能在这里有用。