【问题标题】:IntelliJ: How to Import a Package I CreatedIntelliJ:如何导入我创建的包
【发布时间】:2021-11-08 03:00:24
【问题描述】:

我正在使用 intelliJ 作为我的 IDE 来开发各种 Java 项目。我也在使用 Maven 来构建项目。我所有的项目都链接到一个数据库。因此,我一直在开发一组辅助函数,这些函数在出现时在各种项目中都很有用。我想将这些辅助函数放在一个包(MyPackage)中,然后在需要时导入它们,就像导入 java.util.ArrayList 一样;例如。

根据我对 intelliJ 网站的评论,我专门研究了库的使用。 https://www.jetbrains.com/help/idea/library.html。我还看了一个 youtube 视频。

第一步是“定义”你的库。说明不清楚您需要在此步骤中加入哪个项目:(i)您在其中创建库的项目;或 (ii) 您要将库导入的项目。我假设它是(i)? youtube 视频上的文字太小了,根本看不到。

然后,您将库添加到您的模块,也就是您想要添加库的项目。您再次转到项目结构,并仅添加 .jar 文件。我认为(认为)我已经做到了,因为那个 .jar 文件出现在我正在处理的项目中。

我正在使用 MAVEN 导入 Maven 库,但我不清楚是否需要将 myPackage 作为依赖项添加到 .pom 文件,因为 myPackage 不是 Maven 文件。

当我的 .jar 文件出现在我的库中时,它只有 ArtifactId - Version,而我注意到其他库有 GroupId:ArtifactId-version。

如果有人有任何建议,将不胜感激。在这里尝试了 2 天。

【问题讨论】:

  • 很遗憾没有,这是我首先尝试的。如果我这样做,intelliJ 似乎无法识别导入的包。
  • 检查目标包的jar是否生成。如果您没有在目标包中运行 maven:install,那么将没有可导入的 jar 文件。
  • 移除作用域,provided 表示该库仅在 Maven 编译时使用,并且您希望该库由运行时环境提供。这种本土图书馆不太可能出现这种情况。
  • 嗨 Abishek:这个罐子肯定是被创造出来的。嗨,马克:我会这样做的。 . .但是您如何建议我告诉 intelliJ MyPackage 在我的文件夹结构中的位置?我尝试打开项目结构并导入“模块”。那是正确的吗?还是不正确?还有其他方法吗?

标签: java maven intellij-idea import package


【解决方案1】:

Maven 的最大优势是帮助您管理依赖项,而无需直接在项目中添加 .jar 文件。我首先想到的是:

  1. 在 IntelliJ IDEA 中创建普通的 Maven 项目: 文件 >> 新建 >> 项目 >> 选择 Maven >> 下一步 >> 在“工件坐标”选项下写下您想要的项目 ArtifacId、GroupId 和版本 >> 完成创建项目。
  2. 创建完成后,检查新创建项目的 pom.xml 文件,它应该有您刚刚编写的 ArtifactId、GroupId 和 Version。
  3. 创建包并编写业务逻辑。
  4. 在项目上运行 maven clean install 目标(在 cmd 行中执行 mvn clean install 或在 IntelliJ 的“编辑配置”选项卡中执行此操作)。这将在路径“C:\Users\.m2\repository”中创建 .jar 文件(默认情况下在 Windows 上)。
  5. 您可以在其他项目 pom.xml 文件中使用 artifactId groupId 和您在新创建的项目中拥有的版本创建项目的依赖项,就像任何其他库一样。

例如,如果您的新项目属性是:

<groupId>org.example</groupId>
<artifactId>Test</artifactId>
<version>1.0-SNAPSHOT</version>

那么你的依赖应该是这样的:

<dependency>
        <groupId>org.example</groupId>
        <artifactId>Test</artifactId>
        <version>1.0-SNAPSHOT</version>
</dependency>

【讨论】:

  • 今天早上我会尝试并恢复。
  • 嗨 Hercules:我按照你的建议做了。我在 myPackage 上运行了全新安装,并仔细检查了它实际上是否在我计算机上的 .m2 文件中。
  • 我删除了最初在我的主项目 (mainProject) 中的 .jar 文件。我将 groupId、artifactID 和 version 添加到我的 .pom 中。我的 groupId 是“com.uniquename.process”。我跑了构建。我跑了 mvn clean package。我还使缓存无效并重试构建和运行 mvn clean 包。好消息是 MAVEN 可以识别 myPackage。问题是,当我构建和编译 mainPackage 时,我不断收到此错误,“无法解析符号唯一名称”,其中我有“导入 com.uniquename.process;”它识别 com。但卡在唯一的名称上。
  • 我从来没有遇到过同样的错误。在 mainProject 类中使用 com.uniquename.process 中的类时,IntelliJ 是否显示错误(红色 X 或类似的东西)?还是编译时出现错误?此外,如果您无法解决问题,请尝试使用 IntelliJ 的新库添加窗口手动添加位于 .m2/com/uniquename/process 文件夹中的 .jar 文件。这不是完美的解决方案,但我能想到的唯一一个。
  • 重要提示:这最终奏效了!问题是,与我使用 MAVEN 导入的其他库不同,您不会使用 GroupID“导入”。为了帮助其他人,我展示了我的 MAVEN 导入是什么样的,我的库导入如下所示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-02
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
相关资源
最近更新 更多