eclipse - Maven多模块项目,为什么需要 "pom packaging"?

标签 eclipse google-app-engine maven

我使用 eclipse 在 maven 上开发一个需要“war packaging”(使用 maven-gae-plugin archetype )的应用引擎项目。

我如何包含其他项目(例如公共(public)库项目),以便在其中一个子项目中完成更改时更新所有内容?

一种解决方案可能是“多模块项目”,但我不明白为什么maven 要求父项目是pom 打包。另外,我担心更改为 pom 打包可能会破坏应用程序引擎的兼容性(执行开发服务器、从 eclipse 插件部署等...)

最佳答案

多模块项目不仅是一种打包库依赖项目的方式,实际上是一场 war 或一场耳朵。它允许您共享属性、插件、行为......

无论最终结构如何,这是一种将它们链接在一起的方法。它们各自的生命周期是相关的。

所以,做你想做的更好的方法是

/
|your-parent-project
+--pom.xml --> pom
|
+--/your-webapp-project
|  +--pom.xml --> war
|  
+--/your-service-project
|  +--pom.xml --> jar
|  
+--/your-dao-project
|  +--pom.xml --> jar
|  
+--/your-common-resources-project
|  +--pom.xml --> zip

您仍然会部署您的 war 项目,但父项目将包含有关团队、CI、依赖管理的信息。

您将发布您的父项目(使用 maven-release-plugin 它将自动标记和公会),因为它包含整个生命周期和它们之间的关系..

Reactor(maven 排序引擎)将安排构建顺序以匹配您的依赖项,例如。资源、dao、服务、webapp ...

你真的应该读一读 Sonatype 的书:http://www.sonatype.com/books/mvnref-book/ .

希望这个小解释对您有所帮助!

关于eclipse - Maven多模块项目,为什么需要 "pom packaging"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11190228/

相关文章:

java - Android ADK错误: There are no JREs installed in the workspace that are strictly compatible with this environment

java - 如何在 Eclipse 中运行来自 github 的应用程序

python - 如何在 google app engine 上用 python 创建一个独特的属性?

java - 对象化/AppEngine/Java : Many-many relationship

java - Maven -Dtest=* test,似乎没有运行所有测试

java - 无限 Maven 'target/classes' 文件夹

java - 如何在eclipse中制作两个具有相同路径名的包?

android - 使用 Python 进行 Unicode URL 编码/解码

java - 网络逻辑 : Using jar in EAR file instead of domain/lib

java - Maven - 打包时如何打包所有依赖项的源