如何在Eclipse中同时构建我的自定义Java包和项目?

时间:2018-09-02 13:07:43

标签: java eclipse class package project

据说一个Java包可能包含类,接口,枚举等,但是我一直在网上寻找,但仍然找不到我想要的东西……当我看到包信息时它们还包含类的文件...我的想法是,程序包在同一文件中定义类,接口等,但是类的代码应该在单独的类文件中,不是吗?

我应该在为Eclipse创建的每个类中命名相同的程序包,以将它们全部放在同一个程序包下,而不需要程序包信息文件吗?另一方面,Eclipse是否真的有必要为每个包创建一个treedir?我可以只在包文件中定义类的位置吗?包裹信息文件的内容是什么?

也有人说,当您要使用软件包时,它应该采用.jar格式...是真的吗?

我想做的是构建一个通用的自定义程序包,以便在多个项目中使用它,但是我希望将其链接而不是复制到每个项目中,所以我只修改一次代码... Eclipse?

想法1: +包含所有类的定义和位置的包文件 +一堆按主题分布在不同文件夹中的故事 + eclipse将与链接的软件包文件一起使用,在包含该软件包中引用的类的文件夹树中创建一个软件包。

想法2: +没有包文件 +每个班级都会通过包含包名来说明哪个包在其中 + eclipse将与一堆引用同一包的类一起工作,因此它就是在项目树中创建的。


更新20180904:

  • 我想将所有类存储在单独的文件夹中,例如“ ... / classes / *。java”

  • 我计划在Eclipse环境允许的情况下链接某些类,例如“ ... / src / com.dataproc / class1.java ...”

  • 我想编译该软件包,并将其准备好用于我正在开发的项目以及特殊目录中的其他项目,例如“ ... / mylib / common / *。jar

  • 当我说“同时”时,是因为我想在同一环境中为我的包和项目创建类。

您可能会想,我仍然是使用Java和Eclipse的新手,但是,嘿,渴望学习!我必须说,我已经审查了上述Oracle info about packages,但是对于如何进行操作,我仍然没有一个明确的想法。这对我来说太基础了,所以我不明白是否必须在每个类java文件中声明该包或在某个package-info.java文件中声明我想要的所有类,我知道我必须使用“在我的项目中导入mypackagename。*“ ...

我们非常感谢您的帮助或方向。


更新20180926:此问题已解决from this related question

1 个答案:

答案 0 :(得分:1)

首先,我尝试阐明 java包 package-info.java 文件和 JAR 文件的含义。

Java软件包的概念独立于您用于开发的IDE。来自Oracle Documentation - Creating and Using Packages:一个 Java包是一组相关类型的组合,提供访问保护和名称空间管理。请注意,类型是指类,接口,枚举和注释类型。

要点是:同一包中的类可以访问彼此的包私有成员和受保护成员。 这是在组织程序包中的源代码时必须考虑的关键因素。


package-info.java 文件的主要目的是为应用到程序包的注释创建一个空间,除了为程序包级javadoc提供一个宿主。 [Joseph D. Darcy's Oracle Weblog]


JAR代表 Java ARchive 。这是一种基于流行的ZIP文件格式的文件格式,用于将许多文件聚合到一个文件中。

因此 JAR 文件格式是用于将许多Java类文件以及相关的元数据和资源(文本,图像等)聚合到一个文件中的主要标准,该文件用于分发 。


  

我想做的是构建一个通用的自定义程序包,以便在多个项目中使用它,但是我希望将其链接而不是复制到每个项目中,所以我只修改一次代码... Eclipse?

如果要正确执行此操作,则必须按照以下步骤构造项目:

  • 从现在开始在一个名为 A 的特定项目中组织可重用组件。 A 可以包含所需数量的程序包。需要构建并部署 A 以便其他客户端可以使用。有可以用来满足这些要求的工具(Java上最常用的automation build toolsMavenGradle)。
  • Project A 编译的源代码以 JAR 文件格式提供。
  • 其他项目可以重复使用 A 提供的功能,比如说 B 是一个依赖 A 的项目:项目 A jar文件的 A 组件必须在 B 的类路径中可用。
  • 在项目开发过程中,IDE可以轻松满足这些要求,但是当您必须分发最终产品时,前面提到的工具是最好的解决方案。