java中的打包应用程序避免导入

java中的打包应用程序避免导入,java,Java,我使用第三方API、J2MEAPI构建应用程序,应用程序代码分布在各种java包中 在用户界面类中,不导入特定于设备的代码,但它是必需的 在使用ant等工具构建应用程序时,现在不可能将单独的包构建为jar,因为各种包正在从其他包导入代码等 我试图用接口分离每个包,但并不总是可行的。 在一些地方,ui特定的代码中仍然需要来自用户界面层的代码。此外,还修改了第三方应用程序源代码以开发应用程序。所以在未来的下一版本中,第三方jar不能按原样使用,需要获取源代码,对其进行修改,然后包含 有没有更好的方法

我使用第三方API、J2MEAPI构建应用程序,应用程序代码分布在各种java包中

在用户界面类中,不导入特定于设备的代码,但它是必需的

在使用ant等工具构建应用程序时,现在不可能将单独的包构建为jar,因为各种包正在从其他包导入代码等

我试图用接口分离每个包,但并不总是可行的。
在一些地方,ui特定的代码中仍然需要来自用户界面层的代码。此外,还修改了第三方应用程序源代码以开发应用程序。所以在未来的下一版本中,第三方jar不能按原样使用,需要获取源代码,对其进行修改,然后包含


有没有更好的方法来开发应用程序,从而最大限度地减少包的交互?

我假设您希望提供一个或多个包含接口的API JAR以及一个或多个实现JAR。为了实现这一点,您可以为每个jar创建一个项目或子项目,并相应地设置可见性(这就是Maven为每个项目创建一个工件规则的原因之一)

或者,您可以基于包名管理可见性,对于包名,一些约定很方便,例如所有
*.impl.
包都不应该对
*.api.
包可见

至于第三方依赖项:如果修改它们,则不应自动更新到新版本。这几乎总是会导致问题。如果您真的需要修改第三方代码,那么将其放入您自己的源文件夹和存储库中,不要链接它们提供的二进制jar


或者,您可以使用依赖关系管理器(如Maven或ApacheIvy)管理依赖关系版本。

我希望您的问题不是指带有“package”的java包。为单个java包编译和创建JAR并不常见。它们更像是一个代码组织工具,一堆软件包放在一个jar中。“第三方应用程序源代码也被修改以开发应用程序”-嗯-直接进入维护地狱的最佳决策-你应该有很好的理由这么做!