在netbeans平台应用程序中获得项目类型有更好的方法吗?



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

目前我正在往这个方向走:

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
}

一种方法是

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与实现解耦,并且如果合适的话,你可以在更多的项目类型之间共享相同的业务逻辑。

相关内容

  • 没有找到相关文章

最新更新