有没有一个Maven属性可以指定打包后的war文件解压目录?

4

我能否获取我的项目的目录${project.build.directory}/test-1.0-SNAPSHOT?

我需要从此目录中排除某些文件以进行Fortify扫描,但我刚刚意识到当版本更改时,该目录也会更改。是否有属性可用于替换此目录的名称?


1
参见https://dev59.com/OG025IYBdhLWcg3wPzbL 以了解如何根据配置文件的名称重命名输出war文件的方法。 - user4322779
名字没问题。我需要的是一个属性,可以用它来代替在我的pom文件中硬编码的名字。 - John Mercier
1
名称来自于构建中的finalName。也许project.build.finalName是您要寻找的内容? - wemu
1
Fortify扫描可以自行完成,不需要一个已解压的文件夹。 - khmarbaise
1个回答

5
${project.build.directory}的值是构建目录的路径。这是一个项目属性,3.0之前是pom属性,并且只能在pom.xml文件或由Maven Resource插件过滤功能处理的任何资源中使用。它不是可以在bash命令行上使用的环境变量。您可能感兴趣的另一个项目属性是${project.build.finalName},它是构建项目打包时创建的文件的最终名称。
如果您可以修复war文件的路径及其名称,这应该可以解决问题。有两种方法可以做到这一点,在Maven: How to change path to target directory from command line?中描述。其中一种方法允许在命令行上使用编译-D开关来完成,但不建议使用;另一种方法在pom.xml中定义一个配置文件,将其硬编码并且也使用编译-D开关调用。此外,Maven: specify the outputDirectory only for packaging a jar?也提供了一种类似的方法,可以很好地适用于war文件。
有关maven属性和配置的其他参考文献包括http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuidehttp://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html。最后一个参考文献提供了在pom.xml中使用项目属性进行某些用途的示例,并且在评论中也有很好的例子。

1
谢谢!这帮了很多忙。 - John Mercier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接