我遇到了一个问题,在Maven中有几个外部依赖项。
我有第三方库,它们共同构成了一个产品的发行版。第三方产品不使用maven或提供pom文件,所以我只能使用一组耦合的.jar文件,我不知道它们的确切耦合,只是它们都属于一起。
假设我有这些文件:
- mail.jar
- pe.jar
- xpp3-1.1.3.4.M.jar
它们都是同一"版本"产品的一部分,比如2.0版本。当我用maven构建这个项目时,我会进入/target/MyProject文件夹和MyProject.war文件,这些文件的名称如下:
- 邮件2.0罐
- pe-2.0罐
- xpp3-1.1.3.4.M-2.0.jar
如何告诉maven在构建过程中排除这些版本标记,以便在最终构建中获得这些文件名?
- mail.jar
- pe.jar
- xpp3-1.1.3.4.M.jar
我看过maven war插件:2.2->,默认值:
<outputFileNameMapping>${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
->抛出错误:无法复制工件的文件[..]:参数无效
还有,我的版本。。。<outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
给出奇怪的文件名:
com.foo.bar-${artifact.artifactId}.${artifact.extension}
(无扩展,无属性转换)
我做错了什么?
我更晚了,但由于还没有正确的答案。。。
当您构建一个WAR工件,并且您希望位于target/${finalName}/WEB-INF/lib中的依赖JAR在文件名中没有版本号时,可以使用
<outputFileNameMapping>@{artifactId}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping>
在CCD_ 4的配置中。
你走错了路。将它们部署到您的本地Nexus实例,并在项目的POM中将它们声明为依赖项。提示:XPP3和mail.jar已经在Maven Central中提供。不要重新发明轮子。
我参加聚会迟到了,但我相信你想做的就是这样。
<build>
<finalName>${project.artifactId}</finalName>
</build>