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项目。