7

我正在尝试创建一个可用于其他项目的库。我编写了一个类,其中包含几个静态方法来做一些事情。我想尝试一下,但我无法使用导入的 JAR 文件。

我已将我的代码编译为工件,并从“out”文件夹中获取 JAR 文件,然后将其复制到另一个项目中。之后,我转到“项目结构”,选项卡“库”,然后按下加号按钮。我找到了 JAR 文件并选择了它,之后 IDEA 要求我指定依赖项,所以我这样做了,但是当我想在代码中使用它时,我无法这样做。甚至不能进口。

无法识别库中的类

任何想法为什么它忽略我的图书馆?谢谢!

为了使用 IntelliJ IDEA 创建一个可在其他项目中使用的 JAR 库,我应该怎么做?

4

2 回答 2

6

您遇到了一个非常常见的依赖管理问题。

IMO 真正的答案是使用 Maven、Ant 或 Gradle 之类的构建系统(我自己会使用 Gradle)。您正在尝试做的是手动的,难以复制且易碎的。

每次进行更改时,您都必须通过手动步骤来创建新的 JAR。而且您真的不了解您的依赖关系。

要全力以赴地采用最佳实践,您将拥有发布到持续集成服务器的真实构建系统,该服务器编译和运行测试。成功完成测试后,JAR 将发布到工件服务器(Nexus/Artifactory)。

您与之共享的人将通过构建系统通过声明对您的 JAR 的依赖关系来使用 JAR。

于 2013-12-17T14:08:58.153 回答
4

我弄清楚我的问题是什么。当我创建库时,我试图让它变得简单。太简单了,可惜。我有一个包含一个类的包,它被编译成一个 JAR。结构如下图:

foo
 |
 |_ MyLib.java 

然而,为了使用创建的 JAR 库中的类,它们必须放在包中。这意味着如果我有:

foo
 |
 |_bar
 |  |
 |  |_MyInnerLib.java
 |
 |_MyOuterLib.java

我能够从 MyInnerLib 导入和使用方法,但 MyOuterLib 不可访问或不可导入。这是我犯的错误。

于 2013-12-19T08:03:45.733 回答