我如何在 Eclipse 中同时构建我的自定义 java 包和项目?
How do I do in Eclipse to build my custom java package and project at the same time?
据说 java 包可能包含 classes, interfaces, enums, ... 但我一直在网上寻找,但我仍然没有找到我想要的东西'我正在寻找...当我看到包信息文件时,它们还包括 classes...我的想法是包在同一个文件中定义了 classes、接口等,但是class 应该在单独的 class 文件中,不是吗?
我是否应该在为 Eclipse 创建的每个 class 中命名同一个包,以便将它们放在同一个包下而不需要包信息文件?另一方面,Eclipse 真的有必要为每个包创建一个 treedir 吗?我可以只在 classes 所在的包文件中定义吗?包信息文件的内容是什么?
也有人说,当你要使用一个包时,它应该是 .jar 格式...是真的吗?
我想做的是构建一个通用的自定义包,以便在多个项目中使用它,但我想将它 linked 而不是复制到每个项目,所以我只修改了一次代码...这在 Eclipse 中可行吗?
想法一:
+ 包含 classes 的所有定义和位置的包文件
+一堆按主题分布在不同文件夹中的课程
+ eclipse 将使用 linked 包文件在文件夹树中创建一个包,其中包含包中引用的 classes。
想法二:
+ 没有包文件
+ 每个 class 都会通过包含包名来说明是哪个包
+ eclipse 将与引用相同包的 linked 一堆 classes 一起工作,因此这就是它在项目树中创建的内容。
更新 20180904:
我想将所有 classes 存储在单独的文件夹中,例如“.../classes/*.java”
我计划 link 在 Eclipse 环境允许的情况下将其中一些 classes 放在一个包中,说“... /src/com.dataproc/class1.java ..."
我想编译包并为我正在开发的项目和特殊目录中的其他项目做好准备,例如“.../mylib/common/*。罐子
当我说 "at the same time" 是因为我想在同一个环境中工作,为我的包和项目创建 classes。
如您所想,我仍然是 java 和 Eclipse 的菜鸟,但是,嘿,渴望学习!我不得不说我查看了提到的 Oracle info about packages,但我仍然不清楚如何进行。这对我来说太基础了,所以我不明白我是否必须在每个 class java 文件中声明包,或者在某些包中声明我想要的所有 classes-info.java 文件,我所知道的是我必须在我的项目中使用 "import mypackagename.*"...
非常感谢任何帮助或指导。
更新20180926:该问题已解决
首先我试着弄清楚java package, package-info.java file的意思和 JAR 文件。
Java 包 的概念独立于您用于开发的IDE。来自 Oracle Documentation - Creating and Using Packages:Java 包 是一组提供访问保护和名称 space 管理的相关类型。请注意,类型是指 classes、接口、枚举和注释类型。
要点是:class同一个包中的es可以互相访问对方的包-private和protected成员。
当您必须在包中组织源代码时,这是您必须考虑的关键因素。
package-info.java 文件的主要目的是为应用于包的注释创建 space,除了为包提供一个家-级别 java 博士。 [Joseph D. Darcy's Oracle Weblog]
JAR 代表 Java 存档。它是一种基于流行的 ZIP 文件格式的文件格式,用于将多个文件聚合成一个文件。
因此 JAR 文件格式是用于聚合许多 Java class 文件和相关元数据和资源(文本、图像等)的主要标准.) 合并成一个文件用于分发.
What I'm trying to do is building a common custom package for using it in several projects, but I want to have it linked instead of copied to each project so I modify the code only once... is this possible in Eclipse?
如果你想正确地做到这一点,你必须按如下方式构建你的项目:
- 在特定项目中组织可重用组件,从现在起称为 A。 A 可以包含所需数量的包。 A 需要构建和部署以供其他客户端使用。有一些工具可以帮助您满足这些要求(最常用的automation build tools for Java are Maven and Gradle)。
- 项目 A 编译源代码以 JAR 文件格式提供。
- 其他项目可以重用A提供的功能,假设B是一个依赖A的项目:为了重用 A 的组件,项目 A jar 文件必须在 classpath 中可用B.
- 您的 IDE 在您的项目开发过程中可以轻松满足这些要求,但是当您必须分发最终产品时,前面提到的工具是最好的解决方案。
据说 java 包可能包含 classes, interfaces, enums, ... 但我一直在网上寻找,但我仍然没有找到我想要的东西'我正在寻找...当我看到包信息文件时,它们还包括 classes...我的想法是包在同一个文件中定义了 classes、接口等,但是class 应该在单独的 class 文件中,不是吗?
我是否应该在为 Eclipse 创建的每个 class 中命名同一个包,以便将它们放在同一个包下而不需要包信息文件?另一方面,Eclipse 真的有必要为每个包创建一个 treedir 吗?我可以只在 classes 所在的包文件中定义吗?包信息文件的内容是什么?
也有人说,当你要使用一个包时,它应该是 .jar 格式...是真的吗?
我想做的是构建一个通用的自定义包,以便在多个项目中使用它,但我想将它 linked 而不是复制到每个项目,所以我只修改了一次代码...这在 Eclipse 中可行吗?
想法一: + 包含 classes 的所有定义和位置的包文件 +一堆按主题分布在不同文件夹中的课程 + eclipse 将使用 linked 包文件在文件夹树中创建一个包,其中包含包中引用的 classes。
想法二: + 没有包文件 + 每个 class 都会通过包含包名来说明是哪个包 + eclipse 将与引用相同包的 linked 一堆 classes 一起工作,因此这就是它在项目树中创建的内容。
更新 20180904:
我想将所有 classes 存储在单独的文件夹中,例如“.../classes/*.java”
我计划 link 在 Eclipse 环境允许的情况下将其中一些 classes 放在一个包中,说“... /src/com.dataproc/class1.java ..."
我想编译包并为我正在开发的项目和特殊目录中的其他项目做好准备,例如“.../mylib/common/*。罐子
当我说 "at the same time" 是因为我想在同一个环境中工作,为我的包和项目创建 classes。
如您所想,我仍然是 java 和 Eclipse 的菜鸟,但是,嘿,渴望学习!我不得不说我查看了提到的 Oracle info about packages,但我仍然不清楚如何进行。这对我来说太基础了,所以我不明白我是否必须在每个 class java 文件中声明包,或者在某些包中声明我想要的所有 classes-info.java 文件,我所知道的是我必须在我的项目中使用 "import mypackagename.*"...
非常感谢任何帮助或指导。
更新20180926:该问题已解决
首先我试着弄清楚java package, package-info.java file的意思和 JAR 文件。
Java 包 的概念独立于您用于开发的IDE。来自 Oracle Documentation - Creating and Using Packages:Java 包 是一组提供访问保护和名称 space 管理的相关类型。请注意,类型是指 classes、接口、枚举和注释类型。
要点是:class同一个包中的es可以互相访问对方的包-private和protected成员。 当您必须在包中组织源代码时,这是您必须考虑的关键因素。
package-info.java 文件的主要目的是为应用于包的注释创建 space,除了为包提供一个家-级别 java 博士。 [Joseph D. Darcy's Oracle Weblog]
JAR 代表 Java 存档。它是一种基于流行的 ZIP 文件格式的文件格式,用于将多个文件聚合成一个文件。
因此 JAR 文件格式是用于聚合许多 Java class 文件和相关元数据和资源(文本、图像等)的主要标准.) 合并成一个文件用于分发.
What I'm trying to do is building a common custom package for using it in several projects, but I want to have it linked instead of copied to each project so I modify the code only once... is this possible in Eclipse?
如果你想正确地做到这一点,你必须按如下方式构建你的项目:
- 在特定项目中组织可重用组件,从现在起称为 A。 A 可以包含所需数量的包。 A 需要构建和部署以供其他客户端使用。有一些工具可以帮助您满足这些要求(最常用的automation build tools for Java are Maven and Gradle)。
- 项目 A 编译源代码以 JAR 文件格式提供。
- 其他项目可以重用A提供的功能,假设B是一个依赖A的项目:为了重用 A 的组件,项目 A jar 文件必须在 classpath 中可用B.
- 您的 IDE 在您的项目开发过程中可以轻松满足这些要求,但是当您必须分发最终产品时,前面提到的工具是最好的解决方案。