我有一个 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/