我正在开发一些 Eclipse 插件,这些插件需要像任何其他动态 Web 项目一样在服务器上运行、调试自定义 Eclipse 项目。
就像 Eclipse 中的动态 Web 项目一样,我创建了 Web 项目的自定义项目性质,我想使用 Eclipse 的 Run On Server 向导在像 tomcat 这样的服务器上部署和运行项目。所以基本上我想知道如何从自定义项目创建 IModuleArtifact 对象并使用eclipse的服务器向导部署它。
有人可以指导我正确的方向吗?谢谢。
我正在开发一些 Eclipse 插件,这些插件需要像任何其他动态 Web 项目一样在服务器上运行、调试自定义 Eclipse 项目。
就像 Eclipse 中的动态 Web 项目一样,我创建了 Web 项目的自定义项目性质,我想使用 Eclipse 的 Run On Server 向导在像 tomcat 这样的服务器上部署和运行项目。所以基本上我想知道如何从自定义项目创建 IModuleArtifact 对象并使用eclipse的服务器向导部署它。
有人可以指导我正确的方向吗?谢谢。
据我所知,您有一个 Web 项目,但结构与动态 Web 项目不同。因此,您可以使用以下方法将 Web 项目性质添加到项目中 -
IFacetedProject facetedProject = ProjectFacetsManager.create(project, true, null);
IFacetedProjectWorkingCopy workingCopy = facetedProject.createWorkingCopy();
IProjectFacet webFacet = ProjectFacetsManager.getProjectFacet("jst.web");
IProjectFacetVersion defaultWebFacet = webFacet.getDefaultVersion();
workingCopy.addProjectFacet(defaultWebFacet);
然后使用 project ->properties->Deployment Assembly 更改部署设置以映射将进入 WAR 文件的项目资源。您还可以使用以下代码以编程方式配置它 -
IVirtualComponent rootComponent = ComponentCore
.createComponent(project);
IFolder buildXwtFolder =//Source Folder;
IVirtualFolder rootFolder = rootComponent.getRootFolder();
IVirtualFolder subFolder = rootFolder.getFolder("Deploy path");
subFolder.createLink(buildXwtFolder.getProjectRelativePath(), 0,
null);
if (subFolder instanceof ITaggedVirtualResource) {
((ITaggedVirtualResource) subFolder).tagResource(
buildXwtFolder.getProjectRelativePath(),
null, null);
}