正在从war文件中的Maven依赖项文件名删除版本
我遇到了一个问题,Maven中有几个外部依赖项 我有一些第三方库,它们共同构成了一个产品的发行版。第三方产品不使用maven或提供pom文件,因此我只能使用耦合的.jar文件集合,我不知道这些文件的确切耦合,只是它们都属于一个整体 假设我有这些文件:正在从war文件中的Maven依赖项文件名删除版本,maven,Maven,我遇到了一个问题,Maven中有几个外部依赖项 我有一些第三方库,它们共同构成了一个产品的发行版。第三方产品不使用maven或提供pom文件,因此我只能使用耦合的.jar文件集合,我不知道这些文件的确切耦合,只是它们都属于一个整体 假设我有这些文件: mail.jar 瓶 xpp3-1.1.3.4.M.jar 它们都是同一产品“版本”的一部分,比如说2.0版。使用maven构建此项目时,我会进入/target/MyProject文件夹和MyProject.war文件,这些文件的名称如下:
- mail.jar
- 瓶
- xpp3-1.1.3.4.M.jar
- mail-2.0.jar
- pe-2.0.jar
- xpp3-1.1.3.4.M-2.0.jar
- mail.jar
- 瓶
- xpp3-1.1.3.4.M.jar
${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}
->引发错误:未能复制工件[…]的文件:参数无效
还有,我的版本。。。
${artifact.artifactId}.${artifact.extension}
…提供了奇怪的文件名:
com.foo.bar-${artifact.artifactId}.${artifact.extension}
(无扩展,无属性转换)
我做错了什么?你走错了路。将它们部署到本地Nexus实例,并在项目的POM中将它们声明为依赖项。提示:XPP3和mail.jar已在Maven Central中提供。不要重新发明轮子。你走错了路。将它们部署到本地Nexus实例,并在项目的POM中将它们声明为依赖项。提示:XPP3和mail.jar已在Maven Central中提供。不要重新发明轮子。我来晚了,但我相信你想做的就是这样
<build>
<finalName>${project.artifactId}</finalName>
</build>
${project.artifactId}
我来晚了,但我相信你想做的就是这样
<build>
<finalName>${project.artifactId}</finalName>
</build>
${project.artifactId}
我更晚了,但因为还没有正确的答案
当您构建一个WAR工件,并且希望位于target/${finalName}/WEB-INF/lib中的依赖项jar在文件名中没有版本号时,您可以使用
<outputFileNameMapping>@{artifactId}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping>
@{artifactId}@{dashClassifier?}@{extension}@
在
maven-war-plugin
的配置中,我甚至更晚了,但因为还没有正确的答案
当您构建一个WAR工件,并且希望位于target/${finalName}/WEB-INF/lib中的依赖项jar在文件名中没有版本号时,您可以使用
<outputFileNameMapping>@{artifactId}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping>
@{artifactId}@{dashClassifier?}@{extension}@
在
maven-war-plugin的配置中
这不是我问题的答案。这是一个例子,我有20个库,在某种程度上相互依赖,与第三方产品一起交付。供应商已经对车轮进行了改造。它们是在我的POM中声明的,但是这个POM的结果是,我的结果库现在在它们的名称中具有的值。我想摆脱它。在文件名中包含这些版本号到底有什么问题?这不是我问题的答案。这是一个例子,我有20个库,在某种程度上相互依赖,与第三方产品一起交付。供应商已经对车轮进行了改造。它们是在我的POM中声明的,但是这个POM的结果是,我的结果库现在在它们的名称中具有的值。我想摆脱它。文件名中有这些版本号的确切问题是什么?这将改变战争的名称,而不是.war中的库,我相信,这就是他所要求的。这将改变战争的名称,而不是.war中的库,我相信,这就是他所要求的。