/** * Initialize the Github configuration * * @param githubConfig Github configuration to initialize * @param project Project context */ @Defaults public void initializeGithubConfig(GithubConfig githubConfig, ProjectContext project) { githubConfig.setRepository(project.getName()); }
/** * Initialize the annotations configuration * * @param annotatedProject Annotations configuration to initialize * @param project Project context */ @Defaults public void initializeAnnotationsConfig(AnnotatedProject annotatedProject, ProjectContext project) { Matcher matcher = ID_PATTERN.matcher(project.getName()); if (matcher.matches()) { annotatedProject.setId(matcher.group(1)); } matcher = VERSION_PATTERN.matcher(project.getVersion().toString()); if (matcher.matches()) { annotatedProject.setVersion(matcher.group(1)); } }
/** * Initialize the Github configuration * * @param githubConfig Github configuration to initialize * @param project Project context */ @Defaults public void initializeGithubConfig(GithubConfig githubConfig, ProjectContext project) { githubConfig.setRepository(project.getName()); }
/** * Initialize the annotations configuration * * @param annotatedProject Annotations configuration to initialize * @param project Project context */ @Defaults public void initializeAnnotationsConfig(AnnotatedProject annotatedProject, ProjectContext project) { Matcher matcher = ID_PATTERN.matcher(project.getName()); if (matcher.matches()) { annotatedProject.setId(matcher.group(1)); } matcher = VERSION_PATTERN.matcher(project.getVersion().toString()); if (matcher.matches()) { annotatedProject.setVersion(matcher.group(1)); } }
/** * Initialize a Docker image * * @param image Docker image to initialize * @param project Project context * @param files File operations */ @Defaults public void initializeImage(@Each DockerImage image, ProjectContext project, FileOperations files) { image.setDependsOn(new HashSet<>()); image.setFiles(files.copySpec()); image.setRepository(project.getName()); image.setTag(project.getVersion()); }
/** * Initialize the Maven configuration * * @param mavenConfig Maven configuration to initialize * @param projectContext Project context */ @Defaults public void initializeMavenConfig(MavenConfig mavenConfig, ProjectContext projectContext) { mavenConfig.getPublications().create(SourceSet.MAIN_SOURCE_SET_NAME, p -> { p.setArtifactId(projectContext.getName()); p.setArchivesConfiguration(Dependency.ARCHIVES_CONFIGURATION); p.setAddProjectArtifacts(false); p.setCompileConfigurations(Collections.singletonList(JavaPlugin.COMPILE_CONFIGURATION_NAME)); p.setRuntimeConfigurations(Collections.singletonList(JavaPlugin.RUNTIME_CONFIGURATION_NAME)); }); mavenConfig.getPublications().create(SourceSet.TEST_SOURCE_SET_NAME, p -> { p.setArtifactId(projectContext.getName() + "-" + SourceSet.TEST_SOURCE_SET_NAME); p.setArchivesConfiguration( Names.formatName("", Dependency.ARCHIVES_CONFIGURATION, SourceSet.TEST_SOURCE_SET_NAME)); p.setAddProjectArtifacts(true); p.setCompileConfigurations(Collections.singletonList(JavaPlugin.TEST_COMPILE_CONFIGURATION_NAME)); p.setRuntimeConfigurations(Collections.singletonList(JavaPlugin.TEST_RUNTIME_CONFIGURATION_NAME)); }); } }
/** * Initialize the Maven configuration * * @param mavenConfig Maven configuration to initialize * @param projectContext Project context */ @Defaults public void initializeMavenConfig(MavenConfig mavenConfig, ProjectContext projectContext) { mavenConfig.getPublications().create(SourceSet.MAIN_SOURCE_SET_NAME, p -> { p.setArtifactId(projectContext.getName()); p.setArchivesConfiguration(Dependency.ARCHIVES_CONFIGURATION); p.setAddProjectArtifacts(false); p.setCompileConfigurations(Collections.singletonList(JavaPlugin.COMPILE_CONFIGURATION_NAME)); p.setRuntimeConfigurations(Collections.singletonList(JavaPlugin.RUNTIME_CONFIGURATION_NAME)); }); mavenConfig.getPublications().create(SourceSet.TEST_SOURCE_SET_NAME, p -> { p.setArtifactId(projectContext.getName() + "-" + SourceSet.TEST_SOURCE_SET_NAME); p.setArchivesConfiguration( Names.formatName("", Dependency.ARCHIVES_CONFIGURATION, SourceSet.TEST_SOURCE_SET_NAME)); p.setAddProjectArtifacts(true); p.setCompileConfigurations(Collections.singletonList(JavaPlugin.TEST_COMPILE_CONFIGURATION_NAME)); p.setRuntimeConfigurations(Collections.singletonList(JavaPlugin.TEST_RUNTIME_CONFIGURATION_NAME)); }); } }
/** * Initialize the Maven configuration * * @param mavenConfig Maven configuration to initialize * @param projectContext Project context * @param configurations Configuration container */ @Defaults public void initializeMavenConfig(MavenConfig mavenConfig, ProjectContext projectContext, ConfigurationContainer configurations) { mavenConfig.getPublications().create(SourceSet.MAIN_SOURCE_SET_NAME, p -> { p.setArtifactId(projectContext.getName()); p.setArchivesConfiguration(Dependency.ARCHIVES_CONFIGURATION); p.setAddProjectArtifacts(false); p.setCompileConfigurations(Collections.singletonList(JavaPlugin.COMPILE_CONFIGURATION_NAME)); p.setRuntimeConfigurations(Collections.singletonList(JavaPlugin.RUNTIME_CONFIGURATION_NAME)); }); if (configurations.findByName("testArchives") != null) { mavenConfig.getPublications().create(SourceSet.TEST_SOURCE_SET_NAME, p -> { p.setArtifactId(projectContext.getName() + "-" + SourceSet.TEST_SOURCE_SET_NAME); p.setArchivesConfiguration(Names.formatName("", Dependency.ARCHIVES_CONFIGURATION, SourceSet.TEST_SOURCE_SET_NAME)); p.setAddProjectArtifacts(true); p.setCompileConfigurations( Collections.singletonList(JavaPlugin.TEST_COMPILE_CONFIGURATION_NAME)); p.setRuntimeConfigurations( Collections.singletonList(JavaPlugin.TEST_RUNTIME_CONFIGURATION_NAME)); }); } }
/** * Initialize the Maven configuration * * @param mavenConfig Maven configuration to initialize * @param projectContext Project context * @param configurations Configuration container */ @Defaults public void initializeMavenConfig(MavenConfig mavenConfig, ProjectContext projectContext, ConfigurationContainer configurations) { mavenConfig.getPublications().create(SourceSet.MAIN_SOURCE_SET_NAME, p -> { p.setArtifactId(projectContext.getName()); p.setArchivesConfiguration(Dependency.ARCHIVES_CONFIGURATION); p.setAddProjectArtifacts(false); p.setCompileConfigurations(Collections.singletonList(JavaPlugin.COMPILE_CONFIGURATION_NAME)); p.setRuntimeConfigurations(Collections.singletonList(JavaPlugin.RUNTIME_CONFIGURATION_NAME)); }); if (configurations.findByName("testArchives") != null) { mavenConfig.getPublications().create(SourceSet.TEST_SOURCE_SET_NAME, p -> { p.setArtifactId(projectContext.getName() + "-" + SourceSet.TEST_SOURCE_SET_NAME); p.setArchivesConfiguration(Names.formatName("", Dependency.ARCHIVES_CONFIGURATION, SourceSet.TEST_SOURCE_SET_NAME)); p.setAddProjectArtifacts(true); p.setCompileConfigurations( Collections.singletonList(JavaPlugin.TEST_COMPILE_CONFIGURATION_NAME)); p.setRuntimeConfigurations( Collections.singletonList(JavaPlugin.TEST_RUNTIME_CONFIGURATION_NAME)); }); } }
/** * Create a task to create the Github repository for the project * * @param tasks Task container to create tasks * @param project Project context to get project settings */ @Mutate public void createGithubTasks(ModelMap<Task> tasks, ProjectContext project) { tasks.create("configureGithubRepository", ConfigureGithubRepository.class, t -> { t.setDescription("Configure a Github repository for the project, creating it if necessary."); t.setGroup("build setup"); t.setGithubToken(project.getProperty("github.token")); t.setRepositoryName(project.getName()); t.setRepositoryDescription(project.getDescription()); }); tasks.named("configure", t -> { t.dependsOn("configureGithubRepository"); }); } }
/** * Create a task to create the Github repository for the project * * @param tasks Task container to create tasks * @param project Project context to get project settings */ @Mutate public void createGithubTasks(ModelMap<Task> tasks, ProjectContext project) { tasks.create("configureGithubRepository", ConfigureGithubRepository.class, t -> { t.setDescription("Configure a Github repository for the project, creating it if necessary."); t.setGroup("build setup"); t.setGithubToken(project.getProperty("github.token")); t.setRepositoryName(project.getName()); t.setRepositoryDescription(project.getDescription()); }); tasks.named("configure", t -> { t.dependsOn("configureGithubRepository"); }); } }
/** * 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()); }
/** * 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()); }