我遇到了一个问题,我在Maven中有几个外部依赖项。
我有第三方库,它们共同构成了产品的发布。第三方产品不使用maven或提供pom文件,所以我坚持使用一组耦合的.jar文件,我不知道它们的确切耦合,除了它们都属于一起。
说我有这些文件:
它们都是产品相同“版本”的一部分,比如版本2.0。当我用maven构建这个项目时,我进入/ target / MyProject文件夹和MyProject.war文件,文件名如下:
如何告诉maven在构建过程中排除这些版本标记,以便在最终版本中获取这些文件名?
我看过maven-war-plugin:2.2 - > ,默认值:
<outputFileNameMapping>${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
- &gt;引发错误:无法为工件[..]复制文件:无效参数
另外,我的版本......
<outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
...给出了奇怪的文件名:
com.foo.bar-${artifact.artifactId}.${artifact.extension}
(没有扩展名,没有属性翻译)
我做错了什么?
答案 0 :(得分:2)
我甚至更晚了,但因为还没有正确答案......
当您构建WAR工件时,并且您希望位于target / $ {finalName} / WEB-INF / lib中的依赖项JAR不具有文件名中的版本号,那么您可以使用
G
在<outputFileNameMapping>@{artifactId}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping>
。
答案 1 :(得分:0)
你走错了路。将它们部署到本地Nexus实例,并将它们声明为项目POM中的依赖项。提示:XPP3和mail.jar已在Maven Central中提供。不要重新发明轮子。
答案 2 :(得分:-1)
我迟到了,但我相信你想做的就是这个。
<build>
<finalName>${project.artifactId}</finalName>
</build>