gpt4 book ai didi

java - 具有多个模块的 Maven 包名称

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:18:11 28 4
gpt4 key购买 nike

我正在尝试并学习更​​好地理解 Maven 的用法。我对使用多个模块的包名称的正确方法有疑问。

我将用一个例子来解释我的问题。

我们有以下项目。

project
project-api Interfaces (implemented by the modules)
project-core Logic
project-persistence Data (models, repository etc)
project-utils Utilities (hashing, calculating etc)
project-gui Graphical User Interface
project-cli Command Line Interface
project-dist Distribution (generate the JAR's together)

具有以下类。

project-api
Repository Interface

project-core
AbstractRepository Abstract class (implements Repository)
Core Class

project-persistence
SampleRepository Class (extends AbstractRepository)
Sample Class (model)

project-utils
Calculator Class

project-gui
Demo Class (main)

现在有了这些东西,我们将创建以下 Demo 类。

public class Demo() {

public static void main(String[] args) {
Core core = new Core();
core.start();

Repository sampleRepository = new SampleRepository();
Sample sample = sampleRepository.get();

Calculator.calc(sample);
}

}

我们还需要导入包。您应该在项目中使用哪个选项,或者如果选项不是 listen,那么正确的方法是什么?

选项 1

将所有模块包命名为与模块名称相同的名称:com.company.project.api

package com.company.project.gui

import com.company.project.api.persistence.repository.Repository;
import com.company.project.core.Core;
import com.company.project.persistence.repository.SampleRepository;
import com.company.project.persistence.models.Sample;
import com.company.project.utils.Calculator;

选项 2

将API模块包命名为与项目根名相同的名称:com.company.project

package com.company.project.gui

import com.company.project.persistence.repository.Repository;
import com.company.project.core.Core;
import com.company.project.persistence.repository.SampleRepository;
import com.company.project.persistence.models.Sample;
import com.company.project.utils.Calculator;

选项 3

将所有模块包命名为与项目根包名相同:com.company.project

package com.company.project

import com.company.project.repository.Repository;
import com.company.project.Core;
import com.company.project.repository.SampleRepository;
import com.company.project.models.Sample;
import com.company.project.Calculator;

欢迎所有反馈、建议等。提前致谢!

最佳答案

很高兴您考虑了不同的选择,因为目前还没有模块命名的实际标准;这是个人喜好的问题。只要您保持一致并保持模块名称简洁,并遵循 Maven naming conventions对于 groupID 和 artifactID,一切顺利。

无论如何,我认为#1 是最佳选择。通常,尝试将 Java 与 Maven groupIDsartifactIDs 进行比较是一个很好的方法>.

关于java - 具有多个模块的 Maven 包名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32278316/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com