【发布时间】:2011-04-01 13:34:38
【问题描述】:
我有一个项目正在 Linux 上构建,但需要在 Windows 上运行脚本。所以我生成了用于在 windows 下启动服务器的批处理文件。这些需要引用版本化的 jar。我还用 ${project.version} 版本标记 README 文件,以便用户可以轻松查看该文件属于哪个版本。
所以我创建了一个程序集描述符:
...
<files>
<file>
<source>README</source>
<outputDirectory>/</outputDirectory>
<filtered>true</filtered>
</file>
<file>
<source>start-server.cmd</source>
<outputDirectory>/</outputDirectory>
<filtered>true</filtered>
<lineEnding>dos</lineEnding>
</file>
</files>
...
在 README 文件中有一行
README ${project.version}
在 start-server.cmd 我有
VERSION = ${project.version}
在mvn assembly:assembly 之后解压生成的工件
我在自述文件中找到:
README 1.0.3-SNAPSHOT
在 start-server.cmd 中
VERSION = ${project.version}
我完全不知道为什么它被替换在一个文件中而不是另一个文件中。
【问题讨论】:
-
非常奇怪... Maven 有一些默认排除的扩展名,例如 .jpg 和 .png,但 .cmd 不是其中之一。它与 lineEnding 部分有关吗?如果您尝试将 ${..} 放在该行的不同部分,即不放在最后会怎样?
-
不同的位置没有帮助。在此版本之前,它位于 java 命令行上的类路径定义的中间
标签: maven maven-assembly-plugin