/** * Initialize the project configuration * * @param projectConfig Project configuration * @param annotationsConfig Annotations configuration */ @Defaults public void initializeProjectConfig(ProjectConfig projectConfig, AnnotatedProject annotationsConfig) { License license = projectConfig.getLicense(); license.exclude("*.eea"); } }
/** * Get the copyright years for the project * * @param projectConfig Project configuration * @return Copyright years */ private static String getCopyrightYearTemplate(ProjectConfig projectConfig) { String year = "\\${year}"; Integer inceptionYear = projectConfig.getInceptionYear(); if (inceptionYear != null && inceptionYear != LocalDate.now().getYear()) { year = inceptionYear.toString() + "-" + year; } return year; } }
/** * Initialize the Project configuration * * @param projectConfig Project configuration to initialize */ @Defaults public void initializeProjectConfig(ProjectConfig projectConfig) { projectConfig.getVersionControl().ignore("/.checkstyle"); } }
if (!Strings.isNullOrEmpty(projectConfig.getGradleVersion())) { if (GradleVersion.current().compareTo(GradleVersion.version(projectConfig.getGradleVersion())) < 0) { throw new IllegalArgumentException( "This project requires at least Gradle " + projectConfig.getGradleVersion()); Organization organization = projectConfig.getOrganization(); if (projectConfig.getInceptionYear() == null) { LOGGER.warn("Please configure projectConfig.inceptionYear"); if (projectConfig.getWebsiteUrl() == null) { LOGGER.warn("Please configure projectConfig.websiteUrl"); me.seeber.gradle.project.base.License license = projectConfig.getLicense(); Repository repository = projectConfig.getRepository(); IssueTracker tracker = projectConfig.getIssueTracker();
/** * Initialize the project configuration * * @param projectConfig Project configuration to initialize * @param githubConfig Github configuration to apply */ @Defaults public void initializeProjectConfig(ProjectConfig projectConfig, GithubConfig githubConfig) { if (projectConfig.getWebsiteUrl() == null) { projectConfig.setWebsiteUrl(githubConfig.getWebsiteUrl()); } Organization organization = projectConfig.getOrganization(); if (organization.getWebsiteUrl() == null) { organization.setWebsiteUrl(githubConfig.getProfileUrl()); } Repository repository = projectConfig.getRepository(); repository.setId("github"); repository.setType("git"); repository.setWebsiteUrl(githubConfig.getWebsiteUrl()); repository.setConnection(githubConfig.getConnection()); repository.setDeveloperConnection(githubConfig.getDeveloperConnection()); IssueTracker tracker = projectConfig.getIssueTracker(); tracker.setId("github"); tracker.setWebsiteUrl(githubConfig.getIssueTrackerUrl()); }
/** * Configure the Bintray plugin * * <ul> * <li>Set Bintray user and password from Gradle properties file or environment * <li>Configure the Bintray package * </ul> * * @param bintray Bintray plugin's configuration * @param projectConfig Project configuration * @param bintrayConfig Bintray configuration * @param project Project context */ @Defaults public void configureBintrayExtension(BintrayExtension bintray, ProjectConfig projectConfig, BintrayConfig bintrayConfig, ProjectContext project) { bintray.setUser(project.getProperty("bintray.user")); bintray.setKey(project.getProperty("bintray.key")); PackageConfig pkg = bintray.getPkg(); pkg.setName(project.getName()); pkg.setDesc(project.getDescription()); pkg.setRepo(bintrayConfig.getRepository()); pkg.setVcsUrl(projectConfig.getRepository().getConnection()); pkg.setWebsiteUrl(projectConfig.getWebsiteUrl()); pkg.setIssueTrackerUrl(projectConfig.getIssueTracker().getWebsiteUrl()); pkg.setLicenses(projectConfig.getLicense().getId()); VersionConfig version = pkg.getVersion(); version.setName(project.getVersion().toString()); version.setVcsTag(project.getName() + "-" + project.getVersion()); }
/** * Initialize the plugin bundle extension * * @param bundleExtension Plugin bundle extension to initialize * @param projectConfig Project configuration * @param project Project context */ @Defaults public void configureGradlePluginDevelopmentExtension(PluginBundleExtension bundleExtension, ProjectConfig projectConfig, ProjectContext project) { bundleExtension.setDescription(project.getDescription()); bundleExtension.setWebsite(projectConfig.getWebsiteUrl()); bundleExtension.setVcsUrl(projectConfig.getRepository().getWebsiteUrl()); for (PluginConfig plugin : bundleExtension.getPlugins()) { if (Strings.isNullOrEmpty(plugin.getDisplayName())) { plugin.setDisplayName(project.getDescription()); } } }
/** * Create task to update license template file * * @param tasks Task container to create task * @param projectConfig Project configuration for general project data * @param licenseExtension License extension for license data * @param files Resolver for file names */ @Mutate public void createLicenseTemplateUpdateTask(ModelMap<Task> tasks, ProjectConfig projectConfig, LicenseExtension licenseExtension, FileOperations files) { tasks.create("licenseTemplateUpdate", UpdateLicenseTask.class, t -> { t.setDescription("Download configured license into license template file."); t.setGroup("license"); t.setLicenseFile(files.file("src/doc/templates/LICENSE.txt")); ConventionMapping parameters = t.getConventionMapping(); parameters.map("copyrightName", () -> projectConfig.getOrganization().getName()); parameters.map("copyrightYear", () -> getCopyrightYearTemplate(projectConfig)); parameters.map("licenseUrl", () -> projectConfig.getLicense().getSourceUrl()); }); }
/** * Create the Git tasks * * @param tasks Task container to add tasks to * @param projectConfig Project configuration */ @Mutate public void createGitTasks(ModelMap<Task> tasks, ProjectConfig projectConfig) { tasks.create("configureLocalGitRepository", ConfigureLocalGitRepository.class, t -> { t.setDescription("Configure the local Git repository, creating it if necessary."); t.setGroup("build setup"); t.setIgnores(projectConfig.getVersionControl().getIgnores()); t.getRemoteRepositories().put("origin", projectConfig.getRepository().getDeveloperConnection()); }); tasks.named("configure", t -> { t.dependsOn("configureLocalGitRepository"); }); }
/** * Initialize the project configuration * * @param projectConfig Project configuration */ @Defaults public void initializeProjectConfig(ProjectConfig projectConfig) { License license = projectConfig.getLicense(); license.setExcludes(new ArrayList<>()); VersionControl versionControl = projectConfig.getVersionControl(); versionControl.ignore("*~"); versionControl.ignore("/.classpath"); versionControl.ignore("/.gradle"); versionControl.ignore("/.project"); versionControl.ignore("/.settings"); versionControl.ignore("/bin/"); versionControl.ignore("/build/"); versionControl.ignore("/target/"); versionControl.ignore("#*#"); }
if (!Strings.isNullOrEmpty(projectConfig.getGradleVersion())) { if (GradleVersion.current().compareTo(GradleVersion.version(projectConfig.getGradleVersion())) < 0) { throw new IllegalArgumentException( "This project requires at least Gradle " + projectConfig.getGradleVersion()); Organization organization = projectConfig.getOrganization(); if (projectConfig.getInceptionYear() == null) { LOGGER.warn("Please configure projectConfig.inceptionYear"); if (projectConfig.getWebsiteUrl() == null) { LOGGER.warn("Please configure projectConfig.websiteUrl"); me.seeber.gradle.project.base.License license = projectConfig.getLicense(); Repository repository = projectConfig.getRepository(); IssueTracker tracker = projectConfig.getIssueTracker();
/** * Initialize the project configuration * * @param projectConfig Project configuration to initialize * @param githubConfig Github configuration to apply */ @Defaults public void initializeProjectConfig(ProjectConfig projectConfig, GithubConfig githubConfig) { if (projectConfig.getWebsiteUrl() == null) { projectConfig.setWebsiteUrl(githubConfig.getWebsiteUrl()); } Organization organization = projectConfig.getOrganization(); if (organization.getWebsiteUrl() == null) { organization.setWebsiteUrl(githubConfig.getProfileUrl()); } Repository repository = projectConfig.getRepository(); repository.setId("github"); repository.setType("git"); repository.setWebsiteUrl(githubConfig.getWebsiteUrl()); repository.setConnection(githubConfig.getConnection()); repository.setDeveloperConnection(githubConfig.getDeveloperConnection()); IssueTracker tracker = projectConfig.getIssueTracker(); tracker.setId("github"); tracker.setWebsiteUrl(githubConfig.getIssueTrackerUrl()); }
/** * Configure the Bintray plugin * * <ul> * <li>Set Bintray user and password from Gradle properties file or environment * <li>Configure the Bintray package * </ul> * * @param bintray Bintray plugin's configuration * @param projectConfig Project configuration * @param bintrayConfig Bintray configuration * @param project Project context */ @Defaults public void configureBintrayExtension(BintrayExtension bintray, ProjectConfig projectConfig, BintrayConfig bintrayConfig, ProjectContext project) { bintray.setUser(project.getProperty("bintray.user")); bintray.setKey(project.getProperty("bintray.key")); PackageConfig pkg = bintray.getPkg(); pkg.setName(project.getName()); pkg.setDesc(project.getDescription()); pkg.setRepo(bintrayConfig.getRepository()); pkg.setVcsUrl(projectConfig.getRepository().getConnection()); pkg.setWebsiteUrl(projectConfig.getWebsiteUrl()); pkg.setIssueTrackerUrl(projectConfig.getIssueTracker().getWebsiteUrl()); pkg.setLicenses(projectConfig.getLicense().getId()); VersionConfig version = pkg.getVersion(); version.setName(project.getVersion().toString()); version.setVcsTag(project.getName() + "-" + project.getVersion()); }
/** * Initialize the plugin bundle extension * * @param bundleExtension Plugin bundle extension to initialize * @param projectConfig Project configuration * @param project Project context */ @Defaults public void configureGradlePluginDevelopmentExtension(PluginBundleExtension bundleExtension, ProjectConfig projectConfig, ProjectContext project) { bundleExtension.setDescription(project.getDescription()); bundleExtension.setWebsite(projectConfig.getWebsiteUrl()); bundleExtension.setVcsUrl(projectConfig.getRepository().getWebsiteUrl()); for (PluginConfig plugin : bundleExtension.getPlugins()) { if (Strings.isNullOrEmpty(plugin.getDisplayName())) { plugin.setDisplayName(project.getDescription()); } } }
/** * Create task to update license template file * * @param tasks Task container to create task * @param projectConfig Project configuration for general project data * @param licenseExtension License extension for license data * @param files Resolver for file names */ @Mutate public void createLicenseTemplateUpdateTask(ModelMap<Task> tasks, ProjectConfig projectConfig, LicenseExtension licenseExtension, FileOperations files) { tasks.create("licenseTemplateUpdate", UpdateLicenseTask.class, t -> { t.setDescription("Download configured license into license template file."); t.setGroup("license"); t.setLicenseFile(files.file("src/doc/templates/LICENSE.txt")); ConventionMapping parameters = t.getConventionMapping(); parameters.map("copyrightName", () -> projectConfig.getOrganization().getName()); parameters.map("copyrightYear", () -> getCopyrightYearTemplate(projectConfig)); parameters.map("licenseUrl", () -> projectConfig.getLicense().getSourceUrl()); }); }
/** * Initialize the project configuration * * @param projectConfig Project configuration */ @Defaults public void initializeProjectConfig(ProjectConfig projectConfig) { License license = projectConfig.getLicense(); license.setExcludes(new ArrayList<>()); VersionControl versionControl = projectConfig.getVersionControl(); versionControl.ignore("*~"); versionControl.ignore("/.classpath"); versionControl.ignore("/.gradle"); versionControl.ignore("/.project"); versionControl.ignore("/.settings"); versionControl.ignore("/bin/"); versionControl.ignore("/build/"); versionControl.ignore("/target/"); versionControl.ignore("#*#"); }
Element pom = xml.asElement(); Nodes.setChildValue(pom, "inceptionYear", this.projectConfig.getInceptionYear()); Nodes.setChildValue(pom, "url", this.projectConfig.getWebsiteUrl()); Organization organizationConfig = this.projectConfig.getOrganization(); Nodes.setChildValue(organization, "url", organizationConfig.getWebsiteUrl()); License licenseConfig = this.projectConfig.getLicense(); Nodes.setChildValue(license, "url", licenseConfig.getUrl()); Repository repositoryConfig = this.projectConfig.getRepository(); IssueTracker trackerConfig = this.projectConfig.getIssueTracker();
/** * Initialize the project configuration * * @param projectConfig Project configuration * @param annotationsConfig Annotations configuration */ @Defaults public void initializeProjectConfig(ProjectConfig projectConfig, AnnotatedProject annotationsConfig) { License license = projectConfig.getLicense(); license.exclude("*.eea"); } }
/** * Get the copyright years for the project * * @param projectConfig Project configuration * @return Copyright years */ private static String getCopyrightYearTemplate(ProjectConfig projectConfig) { String year = "\\${year}"; Integer inceptionYear = projectConfig.getInceptionYear(); if (inceptionYear != null && inceptionYear != LocalDate.now().getYear()) { year = inceptionYear.toString() + "-" + year; } return year; } }
/** * Initialize the project configuration * * <ul> * <li>Add the checkstyle config files to the files ignored by version control * </ul> * * @param projectConfig Project configuration to update * @param sources Source sets * @param files File operations object to resolve file names */ @Defaults public void initializeProjectConfig(ProjectConfig projectConfig, ProjectSourceSet sources, FileOperations files) { VersionControl versionControl = projectConfig.getVersionControl(); for (JavaSourceSet source : sources.withType(JavaSourceSet.class)) { File configFile = getCheckstyleConfigFile(source, files); versionControl.ignore("/" + Validate.notNull(files.relativePath(configFile))); } }