我正在尝试创建一个可以在其他项目中使用的库。我用一些静态方法编写了一个类来做一些事情。我想尝试一下,但我无法使用导入的JAR文件。
我已将我的代码编译为工件并从“out”文件夹中获取JAR文件,然后将其复制到另一个项目中。之后,我进入“项目结构”,选项卡“库”,然后按下加号按钮。我找到了JAR文件并选中了它,之后IDEA要求我指定依赖项,所以我做了,但是当我想在代码中使用它时,我无法这样做。它甚至无法导入。
为什么忽略我的图书馆?谢谢!
如何使用IntelliJ IDEA创建可在其他项目中使用的JAR库?
答案 0 :(得分:6)
您遇到了一个非常常见的依赖管理问题。
IMO真正的答案是使用像Maven,Ant或Gradle这样的构建系统(我自己去Gradle)。你要做的是手动,难以复制和脆弱。
每次进行更改时,您都必须通过手动步骤创建新的JAR。你真的不明白你的依赖。
要全力以赴地采用最佳实践,您将拥有可以发布到持续集成服务器的实际构建系统,该服务器可以编译并运行测试。成功完成测试后,JAR将发布到工件服务器(Nexus / Artifactory)。
您与之共享的人将通过声明对JAR的依赖来通过构建系统使用JAR。
答案 1 :(得分:4)
我弄清楚我的问题是什么。当我创建库时,我试图让它变得简单。很遗憾,太简单了。我有一个包含一个类的包,它被编译成一个JAR。结构如下所示:
foo
|
|_ MyLib.java
但是,为了使用创建的JAR库中的类,必须将它们放在包中。这意味着如果我有:
foo
|
|_bar
| |
| |_MyInnerLib.java
|
|_MyOuterLib.java
我可以导入和使用MyInnerLib中的方法,但MyOuterLib不可访问也不可导入。这是我犯的错误。