1

我们有一个(直到现在)小项目,它由 4 个 eclipse 项目组成。该main项目包含所有需要的库和一个 Ant 脚本。

现在我们想将此项目转换为 Maven,同时保持项目结构。

这个怎么运作:

  1. Ant 脚本将所有项目(没有 main)编译为jar文件
  2. Ant 脚本将所有这些jar文件复制到项目的lib文件夹中main
  3. Ant 脚本将模块中的一些静态文件(html、css、js 等)复制到main项目的一些对应文件夹中
  4. Ant 生成项目的war存档main

Maven的(也许)问题:

  • 所有项目都依赖于main项目
    • 所以我认为不可能使用Maven的正常编译行为

我读了一些关于 Maven的可能性,看起来assembly插件可以解决问题?!但我不知道如何让所有这些东西工作......

我想到了这个项目布局:

+ parent-pom (with packaging: pom)
  - main-war (packaging: war)
  - module1 (packaging: jar, depends on main-war)
  - module2 (packaging: jar, depends on main-war)
  - module3 (packaging: jar, depends on main-war and module1)

现在parent-pom必须有我认为的插件<build>指令?assembly

请帮我。谢谢 :)

4

1 回答 1

1

我首先建议更改项目的结构,这意味着具有以下文件夹布局:

  +-- root (pom.xml packaging: pom)
       +--- module1 (packaging: jar: depends on: module-common)
       +--- module2 (packaging: jar: depends on: module-common)
       +--- module3 (packaging: jar: depends on: module1, module-common)
       +--- module-common (packaging: jar)
       +--- module-war (packaging: war, depends on: module1, module2, module3)

提到的对war模块的依赖没有意义,因为通常你有一个模块依赖于另一个而不是war mdoule。因此,要解决这个问题,最简单的解决方案是引入一个单独的 module-common,它应该采用所有模块通用的代码。war 模块有 html、静态文件等的文件夹,布局如下:

 .
 |-- pom.xml
 `-- src
     `-- main
         |-- java
         |   `-- com
         |       `-- example
         |           `-- projects
         |               `-- SampleAction.java
         |-- resources
         |   `-- images
         |       `-- sampleimage.jpg
         `-- webapp
             |-- WEB-INF
             |   `-- web.xml
             |-- index.html
             `-- jsp
                 `-- websource.jsp

如果您处理上述结构中的内容,则不需要使用程序集插件或任何插件来复制文件等。默认情况下会处理。结果你会得到一个包含你需要的东西的war文件。

于 2013-06-08T20:27:01.130 回答