0

我正在尝试创建适用于标准 maven java 项目的 netbeans 模块。有没有更好的方法来做到这一点,然后它是如何被建议的:如何在 Netbeans 平台上获得项目类型?这似乎非常依赖于实现(注意在查找中找到的实现类的 *Impl 后缀)。我在 Project API 中找不到任何标准方法。有任何想法吗?或者依赖一些“NbMavenProjectImpl”字符串是否安全?

目前我正在这样做:

Project mainProject = OpenProjects.getDefault().getMainProject();

if (mainProject == null) {
    return;
}
String projectType = mainProject.getClass().getName();
if (projectType.equals("NbMavenProjectImpl")) {
     // do some action with the project here
}
4

1 回答 1

3

一种方法是

if (mainProject.getLookup().lookup(NbMavenProject.class) != null) {
  // do stuff
}

另一个应该首选的方法是将您的业务逻辑注册到 maven 项目查找中,例如。使用注释

@ProjectServiceProvider(service=MyService.class, projectType="org-netbeans-modules-maven")
public class MyServiceImpl implements MyService {
  @Override
  public void doit() {
  }
}

然后访问业务逻辑

MyService ms = mainProject.getLookup().lookup(MyService.class);
if (ms != null) {
  ms.doit()
}

这样,您可以将 API 与实现分离,并且如果合适的话,您可以在更多项目类型之间共享相同的业务逻辑。

于 2011-07-26T19:42:52.007 回答