maven部署额外的jar文件

我有一个以特定方式构建和部署的工件(而不是jar文件)。 在部署过程中,构建了war文件。

如何配置pom以便将工件也作为jar文件部署到其他位置?

Maven deploy意味着将工件部署到Maven存储库 ,而不是应用程序服务器。

像这样配置其他JAR工件:

  org.apache.maven.plugins maven-jar-plugin   make-a-jar compile  jar     

将此新工件附加到您的项目:

  org.codehaus.mojo build-helper-maven-plugin 1.7   attach-artifacts package  attach-artifact     some file jar       

这篇博客文章及其评论都有答案。

这三个插件配置允许您在战争期间构建/安装/部署jar版本。

  org.apache.maven.plugins maven-jar-plugin   make-a-jar compile  jar      org.apache.maven.plugins maven-install-plugin   install  install-file   jar ${project.artifactId} ${project.groupId} ${project.version}  ${project.build.directory}/${project.artifactId}-${project.version}.jar       org.apache.maven.plugins maven-deploy-plugin   deploy  deploy-file   jar true ${project.distributionManagement.repository.url} ${project.artifactId} ${project.groupId} ${project.version} ${project.build.directory}/${project.artifactId}-${project.version}.jar     

“maven方式”是将src/main/java拆分为一个单独的模块,并将war文件依赖于该模块。

如果您完全抵制这种方法,您可以使用配置文件来更改packaging元素的内容。 我不确定这是否可行。

分开它们是正确的方法。 强迫maven在同一模块中产生战争和jar子是可能的,但会在未来的道路上引起问题。

您应该在pom文件的依赖项中添加工件的相应依赖项。

例如:

  org.apache.myfaces.core myfaces-api 1.2.2 compile  

解决此问题的一种方法是让模块构建一个jar,然后使用程序集插件在该战争的WEB-INF / lib中使用jar构建war文件。 我强烈建议不要这样做。 你最好有一个jar项目和一个带有父项目构建两个模块的war项目。