java - 控制 Java 中的包依赖关系 (Eclipse)

标签 java eclipse dependencies package

我有一个 Java 项目(在 Eclipse 中),由多个包组成。我想控制包之间的依赖关系,例如,一个包不能使用项目中的其他包。这样做的原因是我将从包的子集创建一个独立的 jar。

我是否必须将我的项目分成几个才能实现此目的,或者是否有一些工具或 Eclipse 插件可以做到这一点?

最佳答案

Aspectj开始现在是一个 Eclipse 项目,我想 Aspectj 解决方案也符合资格。 AspectJ 非常适合执行这样的策略,因为它允许您基于切入点创建编译时警告和错误。如果您使用 AspectJ Developer Tools ,您可以在 Eclipse 中启动并运行各个方面。

以下是策略执行方面的示例:

public aspect PolicyEnforcement {

  pointcut project1Call() : call(* com.project1..*.*(..));
  pointcut inProject1() : within(com.project1..*);
  pointcut project2Call() : call(* com.project2..*.*(..));
  pointcut inProject2() : within(com.project2..*);

  declare error : project1Call() && inProject2()
    : "Project2 is not allowed to access Project1";
  declare error : project2Call() && inProject1()
    : "Project1 is not allowed to access Project2";
}

注意:仅在开发阶段使用 AspectJ 是完全可以的,不会造成任何运行时依赖。

关于java - 控制 Java 中的包依赖关系 (Eclipse),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6187399/

相关文章:

eclipse - Eclipse Photon 故障时的 m2e egit 连接器(用于 SCM)

android - 使用Gradle 3.0查找lib依赖项

maven - Maven 插件和依赖项有什么区别?

Gradle 依赖 zip 编译

java - 使用 Mockito/EasyMock 模拟自动连线 Web 服务

java - Java如何通过组/标签数据缓存内存中?

java - 在 Chrome 中加载小程序时出现 ClassNotFound 异常

eclipse - 如何解决 xsi :noNamespaceSchemaLocation in jdoconfig. xml 上的验证错误

java - 未使用的 grails 2.0.3 安装缺少 SpringsourceTool Suite 2.9.2 : Complaining about groovy-all-1. 8.6.jar

java - 任何时候我输入 >= 13 的值都不会显示任何内容