【问题标题】:Packaging to Maven project打包到 Maven 项目
【发布时间】:2016-04-05 09:39:15
【问题描述】:

目前我们正在使用 ANT 脚本来构建项目并运行 jUnit 测试。现在,我们决定迁移到 Maven。

我们有两个网络项目,Core-ProjectSub-Project。现在这里变得复杂了。他们的项目如下。 现在,如果我想将这个 Sub-Project 添加到 Core-Project 那么我将创建一个带有 WebContent 文件夹的 Sub-Project jar 并将其放入 Core-Project。现在,每当我运行 Core-Project 时,我们都有一个实用程序类,可以将 Sub-Project 的内容提取到 Core-Project 中。

最终(预期)项目结构应如下所示。

如何在 Maven 中实现这一点?我的意思是如何创建一个 jar,其中包含一些位于 src->main->webapp 中的文件。

【问题讨论】:

  • 1) 您的示例没有目录src->main->webapp2) 你期望什么结果? 3) 可以使用mvn package 创建一个简单的Jar。
  • @SubOptimal 我已经更新了这个问题。如何创建 web 项目的 jar?
  • 嗯,您正在尝试构建一个 Web 项目,将其复制到一个 jar 中,将该 jar 复制到另一个 Web 项目中,然后在部署时解压其中的文件?听起来像xy问题。改为使用“网络片段”将文件添加到您的核心项目。

标签: java maven maven-2 maven-package


【解决方案1】:

您似乎需要重新考虑一下您的架构。这个答案可能超出了您的问题范围,但将 Maven 视为“约定优于配置”很重要。可以使用 maven 打包工具的组合来实现您的布局,但是如果您重组并遵循 Maven 约定,那么对于您项目之外的人来说,这将更有意义,并且需要维护的工作更少。

建议:

config-project
sub-project
core-project

config-project 可以保存应用程序所有部分的配置。 sub-project 和 core-project 可以依赖于这个项目并在运行时使用它。您应该将此项目打包为“jar”或“zip”,具体取决于您需要提供给其他项目的资源。

子项目应仅包含应用程序的非基于 Web 的部分通用的二进制代码。它应该打包为一个“jar”项目,而不是与 config-project 依赖项一起打包。

core-project 应打包为“战争”项目。并按照此处建议的目录结构进行操作:Maven War Plugin

保持配置、非网络代码和网络代码之间的分离需要一点时间来适应。 Tomcat 有一个优秀的原型,它生成由这些部分组成的 maven 项目结构。易于生成和检查:Maven Tomcat Archetype

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-05
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 2019-05-05
    • 2017-01-21
    相关资源
    最近更新 更多