我得到了一个maven项目来编译并部署到tomcat服务器上。在今天之前,我从未使用过maven,但我在谷歌上搜索了不少。这个项目中的顶级pom.xml文件似乎将打包类型设置为pom。
我应该做什么mvn安装后得到这个应用程序部署?我希望能在某个地方找到战争文件或其他东西,但我想我找错了地方或错过了一个步骤。
我得到了一个maven项目来编译并部署到tomcat服务器上。在今天之前,我从未使用过maven,但我在谷歌上搜索了不少。这个项目中的顶级pom.xml文件似乎将打包类型设置为pom。
我应该做什么mvn安装后得到这个应用程序部署?我希望能在某个地方找到战争文件或其他东西,但我想我找错了地方或错过了一个步骤。
当前回答
pom的打包用于聚合其他项目的项目中,以及那些唯一有用的输出是来自某些插件的附加工件的项目中。在您的情况下,我猜您的顶级pom包括<modules>…</modules>聚合其他目录,实际输出是其他目录(可能是子目录)的结果。如果为了这个目的进行合理的编码,它就会有一种战争的包装。
其他回答
为了简单地回答您的问题,当您执行mvn:install时,maven将基于(pom.xml中的打包属性)创建一个打包的工件。运行maven install后,您可以找到扩展名为.package的文件
In target directory of the project workspace Also where your maven 2 local repository is search for (.m2/respository) on your box, Your artifact is listed in .m2 repository under (groupId/artifactId/artifactId-version.packaging) directory If you look under the directory you will find packaged extension file and also pom extension (pom extension is basically the pom.xml used to generate this package) If your maven project is multi-module each module will two files as described above except for the top level project that will only have a pom
https://maven.apache.org/pom.html
父和聚合(多模块)项目的打包类型必须是pom。这些类型定义了绑定到一组生命周期阶段的目标。例如,如果打包是jar,那么打包阶段将执行jar:jar目标。如果打包是pom,执行的目标将是site:附件-描述符
现实生活用例
在一家java含量很高的公司,我们有一个python项目,需要进入一个Nexus工件存储库。Python并没有二进制文件,所以我只是想把Python文件压缩成。tar或。zip然后推送。这个repo已经集成了maven,所以我们使用了<packaging>pom</packaging>指示符和maven程序集插件来将python项目打包为.zip文件并上传。
这篇SO文章概述了这些步骤
Pom基本上是一个子模块的容器,每个子模块都由与Pom .xml相同目录下的子目录表示。
在某个地方,嵌套在项目结构中,您将发现带有战争包装的工件(模块)。Maven通常将所有内容构建到每个模块的/target子目录中。所以在mvn安装后,在一个带有war打包的模块中查找目标子目录。
当然,
$ find . -iname "*.war"
工作同样好;-)。
POM(项目对象模型)不过是构建项目的自动化脚本,我们可以用XML编写自动化脚本, 构建脚本文件在不同的自动化工具中有不同的名称
比如ANT里的build.xml, MAVEN里的pom.xml
MAVEN可以包装罐子,战争,耳朵和POM,这是我们所有人的新事物
如果你想检查什么是POM.XML