我确信这已在其他地方得到解答,但我不确定我是否完全理解如何组织项目层次结构。
所以我有一个我正在研究的项目,它拥有许多我在其他各个项目中使用的实用程序。
让我们调用项目的主要部分MyProject.org.utils
在这下面,我对某些事物进行了逻辑分离 - 记录和自定义例外' - 日历/时间功能 - 字符串函数。
我正在使用eclipse并创建了每个这样的软件包'在MyProject.org.utils
下面。
我希望能为这个项目做两件事。
我希望能够为每个子部分释放一个jar,所以一个jar包含所有日志记录和另一个日历函数。
这意味着如果我不需要将这些导入到我不需要的其他项目中(特别是对于我的日志记录,我在其他所有项目中使用这些项目,但通常我不会这样做#39 ; t使用日历内容。)
我确信这可以在我的Maven pom.xml
中完成,但我不确定如何为此设置。
我已经读过有关父母的信息,但我不相信我理解如何在我的情况下使用它,因为我的工作区中只有一个pom.xml
。
我想将所有这些部分保存在我的eclipse工作区中的同一个项目中。
这是这个项目的当前树设置,我认为这有助于更好地帮助解释我想要做的事情(为了简洁而修剪):
├── log4j2.xml
├── pom.xml
├── README.md
├── src
│ ├── main
│ │ ├── java
│ │ │ └── myproject
│ │ │ └── org
│ │ │ └── utils
│ │ │ ├── calendar
│ │ │ ├── logging
│ │ └── test
│ │ ├── java
│ │ │ └── myproject
│ │ │ └── org
│ │ │ └── utils
│ │ │ ├── calendar
│ │ │ ├── logging
│ │ └── resources
│ └── target
│ ├── classes
│
│...
基本上我想要一个罐子:
myproject.org.utils.calendar
myproject.org.utils.logging
但如何修改我的pom.XML
以获取此功能。
我想我需要一个父pom.xml
,但是我在哪里将孩子pom.xml
文件放到我要创建的2个罐子里?
或者我是以错误的方式解决这个问题?
简短的示例和教程等链接将是完美的,
在此先感谢您的帮助。
大卫
答案 0 :(得分:1)
通常,您应该为每个日历和日志记录创建maven项目(也称为pom.xml)。 poms的包装应具有默认值 jar 。请注意,每个项目(日历和日志记录)都有一个独立的物理位置,并且没有常见的src文件夹,就像在您的代码段中一样。这不会影响包或jar的名称,您可以使用它们的公共前缀。
我建议为他们创建父maven项目,并将日历和日志项目作为模块包含在父pom中。父pom包装应该 pom 。父pom没有目标 - 因为jar是由模块产生的。父pom可以更轻松地管理依赖项,版本,插件等。
所有这些都可以通过eclipse轻松定义(File-> New-> Maven-> Maven项目等)。
您可以在git上看到工作示例。可能值得阅读maven手册以获得背景。
对于可能出现的其他人来说,这是一个更好的过程。 - 创建初始maven项目(使用eclipse new - > maven项目或命令行)。 - 要创建子包,您应该选择新的 - > Maven模块
这将产生以下
的文件结构├── myproject.org.utils.calendar
│ ├── src
| │ ├── main
| │ └── test
│ └── target
├── src
│ ├── main
| │ ├── main
| | │ └── java
| | | │ └── myproject.org.utils.calendar_old
您将在上面的树中看到主项目根目录中新创建的maven模块(myproject.org.utils.calendar
)站点,而不是典型的eclipse new-> java->包如何位于{ {1}}。
这个新模块(src\main\java
)包含自己的pom.xml和外部的父母' project现在将其作为pom.xml中的myproject.org.utils.calendar
部分的一部分