如何组织我的maven项目
How to organise my maven project
我确信这已在其他地方得到解答,但我不确定我是否完全理解如何组织我的项目层次结构。
所以我有一个正在处理的项目,它包含许多我在其他各种项目中使用的实用程序。
让我们调用项目的主要部分MyProject.org.utils
在此之下,我对诸如此类的部分进行了逻辑分离
- 记录和 'custom exceptions'
- 日历/时间功能
- 字符串函数。
我正在使用 eclipse 并在 MyProject.org.utils
.
下创建了每个 'packages'
我希望能够为这个项目做两件事。
我希望能够为每个子部分发布一个 jar,所以一个 jar 包含用于日志记录的所有内容,另一个用于日历功能。
这意味着如果我不需要将它们导入另一个我不需要的项目(特别是我的日志记录,我在所有其他项目中都使用它,但我通常不使用日历的东西)。
我确信这可以在我的 Maven 中完成 pom.xml
但我不确定如何为此进行设置。
我读过有关 parent poms 的内容,但我不相信我了解如何让它在我的情况下工作,因为我的工作区中只有一个 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
,但是我要将我要创建的 2 个 jar 的子 pom.xml
文件放在哪里?
还是我用错了方法?
简短示例和教程链接等将是完美的,
预先感谢您的帮助。
大卫
一般来说,您应该为每个日历和日志记录内容创建 Maven 项目(又名 pom.xml)。 poms的包装应该有默认值jar。请注意,每个项目(日历和日志记录)都有一个单独的物理位置,并且没有一个公共的 src 文件夹,就像您的代码片段中那样。这不会影响包或 jar 的名称,您可以为它们使用通用前缀。
我建议为他们创建父 maven 项目,并将日历和日志项目作为模块包含到父 pom.xml 中。父pom包装应该是pom。父 pom 没有目标 - 因为 jars 是由模块生成的。 Parent pom 更容易管理依赖项、版本、插件等。
所有可以用eclipse轻松定义的(文件->新建->Maven->Maven项目等)
您可以在 git 上查看工作示例。可能值得阅读 maven 手册以获得背景知识。
对于可能会出现的其他人来说,这是更好的过程。
- 创建初始 maven 项目(使用 eclipse new -> maven 项目,或命令行)。
- 要创建子包,你应该 select new -> Maven module
这将导致文件结构如下
├── 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->包裹位于 src\main\java
.
下
这个新模块 (myproject.org.utils.calendar
) 包含它自己的 pom.xml 并且外部 'parent' 项目现在将其作为其 [= 中的 <modules>
部分的一部分37=]
我确信这已在其他地方得到解答,但我不确定我是否完全理解如何组织我的项目层次结构。
所以我有一个正在处理的项目,它包含许多我在其他各种项目中使用的实用程序。
让我们调用项目的主要部分MyProject.org.utils
在此之下,我对诸如此类的部分进行了逻辑分离 - 记录和 'custom exceptions' - 日历/时间功能 - 字符串函数。
我正在使用 eclipse 并在 MyProject.org.utils
.
我希望能够为这个项目做两件事。
我希望能够为每个子部分发布一个 jar,所以一个 jar 包含用于日志记录的所有内容,另一个用于日历功能。
这意味着如果我不需要将它们导入另一个我不需要的项目(特别是我的日志记录,我在所有其他项目中都使用它,但我通常不使用日历的东西)。
我确信这可以在我的 Maven 中完成 pom.xml
但我不确定如何为此进行设置。
我读过有关 parent poms 的内容,但我不相信我了解如何让它在我的情况下工作,因为我的工作区中只有一个 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
,但是我要将我要创建的 2 个 jar 的子 pom.xml
文件放在哪里?
还是我用错了方法?
简短示例和教程链接等将是完美的,
预先感谢您的帮助。
大卫
一般来说,您应该为每个日历和日志记录内容创建 Maven 项目(又名 pom.xml)。 poms的包装应该有默认值jar。请注意,每个项目(日历和日志记录)都有一个单独的物理位置,并且没有一个公共的 src 文件夹,就像您的代码片段中那样。这不会影响包或 jar 的名称,您可以为它们使用通用前缀。
我建议为他们创建父 maven 项目,并将日历和日志项目作为模块包含到父 pom.xml 中。父pom包装应该是pom。父 pom 没有目标 - 因为 jars 是由模块生成的。 Parent pom 更容易管理依赖项、版本、插件等。
所有可以用eclipse轻松定义的(文件->新建->Maven->Maven项目等)
您可以在 git 上查看工作示例。可能值得阅读 maven 手册以获得背景知识。
对于可能会出现的其他人来说,这是更好的过程。 - 创建初始 maven 项目(使用 eclipse new -> maven 项目,或命令行)。 - 要创建子包,你应该 select new -> Maven module
这将导致文件结构如下
├── 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->包裹位于 src\main\java
.
这个新模块 (myproject.org.utils.calendar
) 包含它自己的 pom.xml 并且外部 'parent' 项目现在将其作为其 [= 中的 <modules>
部分的一部分37=]