public Collection<BuildTarget<?>> computeDependencies(){ List<BuildTarget<?>> dependencies = new ArrayList<BuildTarget<?>>(); Set<JpsModule> modules = JpsJavaExtensionService.dependencies(myModule).includedIn(JpsJavaClasspathKind.compile(isTests())).getModules(); for (JpsModule module : modules){ if(module.getModuleType().equals(ModuleType.INSTANCE)){ dependencies.add(new Target(getElixirTargetType(), module)); } } if(isTests()){ dependencies.add(new Target(Type.PRODUCTION, myModule)); } return dependencies; }
@NotNull @Override public Collection<File> getOutputRoots(CompileContext context) { return ContainerUtil.createMaybeSingletonList(JpsJavaExtensionService.getInstance().getOutputDirectory(myModule, isTests())); }
sdkTable.setSdkReference(JpsJavaSdkType.INSTANCE, JpsJavaExtensionService.getInstance().createWrappedJavaSdkReference((JpsJavaSdkTypeWrapper)sdkType, wrapperRef)); module.addSourceRoot(JpsPathUtil.pathToUrl(srcPath), JavaSourceRootType.SOURCE); JpsJavaModuleExtension extension = JpsJavaExtensionService.getInstance().getOrCreateModuleExtension(module); if(outputPath != null){ extension.setOutputUrl(JpsPathUtil.pathToUrl(outputPath)); if(!StringUtil.isEmpty(testOutputPath)){ extension.setTestOutputUrl(JpsPathUtil.pathToUrl(testOutputPath)); }else { extension.setTestOutputUrl(extension.getOutputUrl()); extension.setInheritOutput(true);
protected void configureWebModuleRoots( @NotNull final HybrisModuleDescriptor moduleDescriptor, @NotNull final ContentEntry contentEntry, @NotNull final File webModuleDirectory, @NotNull final List<File> dirsToIgnore ) { Validate.notNull(moduleDescriptor); final File webSrcDirectory = new File(webModuleDirectory, SRC_DIRECTORY); contentEntry.addSourceFolder( VfsUtil.pathToUrl(webSrcDirectory.getAbsolutePath()), JavaSourceRootType.SOURCE ); final File webGenSrcDirectory = new File(webModuleDirectory, GEN_SRC_DIRECTORY); contentEntry.addSourceFolder( VfsUtil.pathToUrl(webGenSrcDirectory.getAbsolutePath()), JavaSourceRootType.SOURCE, JpsJavaExtensionService.getInstance().createSourceRootProperties("", true) ); if (moduleDescriptor instanceof CustomHybrisModuleDescriptor || !moduleDescriptor.getRootProjectDescriptor() .isExcludeTestSources()) { addTestSourceRoots(contentEntry, webModuleDirectory, dirsToIgnore); } else { excludeTestSourceRoots(contentEntry, webModuleDirectory); } excludeSubDirectories(contentEntry, webModuleDirectory, Arrays.asList( ADDON_SRC_DIRECTORY, TEST_CLASSES_DIRECTORY, COMMON_WEB_SRC_DIRECTORY )); configureWebInf(contentEntry, moduleDescriptor, webModuleDirectory); }
public static boolean isGeneratedSource(SourceFolder sourceFolder) { // copied from JavaProjectRootsUtil. Don't use that class because it's not available in other flavors of Intellij JavaSourceRootProperties properties = sourceFolder.getJpsElement().getProperties(JavaModuleSourceRootTypes.SOURCES); JavaResourceRootProperties resourceProperties = sourceFolder.getJpsElement().getProperties(JavaModuleSourceRootTypes.RESOURCES); return properties != null && properties.isForGeneratedSources() || resourceProperties != null && resourceProperties.isForGeneratedSources(); }
/*** doBuildWithElixirc releated private methods */ @NotNull private static File getBuildOutputDirectory(@NotNull JpsModule module, boolean forTests, @NotNull CompileContext context) throws ProjectBuildException { JpsJavaExtensionService instance = JpsJavaExtensionService.getInstance(); File outputDirectory = instance.getOutputDirectory(module, forTests); if (outputDirectory == null) { String errorMessage = "No output directory for module " + module.getName(); context.processMessage(new CompilerMessage(ElIXIRC_NAME, BuildMessage.Kind.ERROR, errorMessage)); throw new ProjectBuildException(errorMessage); } if (!outputDirectory.exists()) { FileUtil.createDirectory(outputDirectory); } return outputDirectory; }
@NotNull @Override public Collection<BuildTarget<?>> computeDependencies(BuildTargetRegistry targetRegistry, TargetOutputIndex outputIndex) { List<BuildTarget<?>> dependencies = new ArrayList<>(); Set<JpsModule> modules = JpsJavaExtensionService.dependencies(myModule).includedIn(JpsJavaClasspathKind.compile(isTests())).getModules(); for (JpsModule module : modules) { if (module.getModuleType() == JpsMonkeyModuleType.INSTANCE) { dependencies.add(new MonkeyBuildTarget(getMCTargetType(), module)); } } if (isTests()) { dependencies.add(new MonkeyBuildTarget(MonkeyBuildTargetType.PRODUCTION, getModule())); } return dependencies; }
protected void configureCommonRoots( @NotNull final HybrisModuleDescriptor moduleDescriptor, @NotNull final ContentEntry contentEntry, @NotNull final List<File> dirsToIgnore ) { Validate.notNull(moduleDescriptor); Validate.notNull(contentEntry); addSourceFolderIfNotIgnored( contentEntry, new File(moduleDescriptor.getRootDirectory(), SRC_DIRECTORY), JavaSourceRootType.SOURCE, dirsToIgnore ); addSourceFolderIfNotIgnored( contentEntry, new File(moduleDescriptor.getRootDirectory(), GEN_SRC_DIRECTORY), JavaSourceRootType.SOURCE, JpsJavaExtensionService.getInstance().createSourceRootProperties("", true), dirsToIgnore ); if (moduleDescriptor instanceof CustomHybrisModuleDescriptor || !moduleDescriptor.getRootProjectDescriptor() .isExcludeTestSources()) { addTestSourceRoots(contentEntry, moduleDescriptor.getRootDirectory(), dirsToIgnore); } else { excludeTestSourceRoots(contentEntry, moduleDescriptor.getRootDirectory()); } configureResourceDirectory(contentEntry, moduleDescriptor, dirsToIgnore); excludeCommonNeedlessDirs(contentEntry, moduleDescriptor); }
@Nullable public File getOutputDir() { return JpsJavaExtensionService.getInstance().getOutputDirectory(getModule(), isTests()); }
@NotNull private static File getBuildOutputDirectory(@NotNull JpsModule module, boolean forTests, @NotNull CompileContext context) throws ProjectBuildException { JpsJavaExtensionService instance = JpsJavaExtensionService.getInstance(); File outputDirectory = instance.getOutputDirectory(module, forTests); if (outputDirectory == null) { String errorMessage = "No output dir for module " + module.getName(); context.processMessage(new CompilerMessage(NAME, BuildMessage.Kind.ERROR, errorMessage)); throw new ProjectBuildException(errorMessage); } if (!outputDirectory.exists()) { FileUtil.createDirectory(outputDirectory); } return outputDirectory; }