Class JavaProject.Builder
- java.lang.Object
-
- io.github.cdklabs.projen.java.JavaProject.Builder
-
- All Implemented Interfaces:
software.amazon.jsii.Builder<JavaProject>
- Enclosing class:
- JavaProject
@Stability(Experimental) public static final class JavaProject.Builder extends Object implements software.amazon.jsii.Builder<JavaProject>
(experimental) A fluent builder forJavaProject.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description JavaProject.BuilderartifactId(String artifactId)(experimental) The artifactId is generally the name that the project is known by.JavaProject.BuilderautoApproveOptions(AutoApproveOptions autoApproveOptions)(experimental) Enable and configure the 'auto approve' workflow.JavaProject.BuilderautoMerge(Boolean autoMerge)(experimental) Enable automatic merging on GitHub.JavaProject.BuilderautoMergeOptions(AutoMergeOptions autoMergeOptions)(experimental) Configure options for automatic merging on GitHub.JavaProjectbuild()JavaProject.Builderclobber(Boolean clobber)(experimental) Add aclobbertask which resets the repo to origin.JavaProject.BuildercommitGenerated(Boolean commitGenerated)(experimental) Whether to commit the managed files by default.JavaProject.BuildercompileOptions(MavenCompileOptions compileOptions)(experimental) Compile options.static JavaProject.Buildercreate()JavaProject.Builderdeps(List<String> deps)(experimental) List of runtime dependencies for this project.JavaProject.Builderdescription(String description)(experimental) Description of a project is always good.JavaProject.BuilderdevContainer(Boolean devContainer)(experimental) Add a VSCode development environment (used for GitHub Codespaces).JavaProject.Builderdistdir(String distdir)(experimental) Final artifact output directory.JavaProject.Buildergithub(Boolean github)(experimental) Enable GitHub integration.JavaProject.BuildergithubOptions(GitHubOptions githubOptions)(experimental) Options for GitHub integration.JavaProject.BuildergitIgnoreOptions(IgnoreFileOptions gitIgnoreOptions)(experimental) Configuration options for .gitignore file.JavaProject.BuildergitOptions(GitOptions gitOptions)(experimental) Configuration options for git.JavaProject.Buildergitpod(Boolean gitpod)(experimental) Add a Gitpod development environment.JavaProject.BuildergroupId(String groupId)(experimental) This is generally unique amongst an organization or a project.JavaProject.Builderjunit(Boolean junit)(experimental) Include junit tests.JavaProject.BuilderjunitOptions(JunitOptions junitOptions)(experimental) junit options.JavaProject.Builderlogging(LoggerOptions logging)(experimental) Configure logging options such as verbosity.JavaProject.Buildermergify(Boolean mergify)Deprecated.usegithubOptions.mergifyinsteadJavaProject.BuildermergifyOptions(MergifyOptions mergifyOptions)Deprecated.usegithubOptions.mergifyOptionsinsteadJavaProject.Buildername(String name)(experimental) This is the name of your project.JavaProject.Builderoutdir(String outdir)(experimental) The root directory of the project.JavaProject.Builderpackaging(String packaging)(experimental) Project packaging format.JavaProject.BuilderpackagingOptions(MavenPackagingOptions packagingOptions)(experimental) Packaging options.JavaProject.Builderparent(Project parent)(experimental) The parent project, if this project is part of a bigger project.JavaProject.BuilderparentPom(ParentPom parentPom)(experimental) A Parent Pom can be used to have a child project inherit properties/plugins/ect in order to reduce duplication and keep standards across a large amount of repos.JavaProject.BuilderprojectType(ProjectType projectType)Deprecated.no longer supported at the base project levelJavaProject.BuilderprojenCommand(String projenCommand)(experimental) The shell command to use in order to run the projen CLI.JavaProject.BuilderprojenCredentials(GithubCredentials projenCredentials)(experimental) Choose a method of providing GitHub API access for projen workflows.JavaProject.BuilderprojenrcJava(Boolean projenrcJava)(experimental) Use projenrc in java.JavaProject.BuilderprojenrcJavaOptions(ProjenrcOptions projenrcJavaOptions)(experimental) Options related to projenrc in java.JavaProject.BuilderprojenrcJson(Boolean projenrcJson)(experimental) Generate (once) .projenrc.json (in JSON).JavaProject.BuilderprojenrcJsonOptions(ProjenrcJsonOptions projenrcJsonOptions)(experimental) Options for .projenrc.json.JavaProject.BuilderprojenTokenSecret(String projenTokenSecret)Deprecated.useprojenCredentialsJavaProject.Builderreadme(SampleReadmeProps readme)(experimental) The README setup.JavaProject.Builderrenovatebot(Boolean renovatebot)(experimental) Use renovatebot to handle dependency upgrades.JavaProject.BuilderrenovatebotOptions(RenovatebotOptions renovatebotOptions)(experimental) Options for renovatebot.JavaProject.Buildersample(Boolean sample)(experimental) Include sample code and test if the relevant directories don't exist.JavaProject.BuildersampleJavaPackage(String sampleJavaPackage)(experimental) The java package to use for the code sample.JavaProject.Builderstale(Boolean stale)(experimental) Auto-close of stale issues and pull request.JavaProject.BuilderstaleOptions(StaleOptions staleOptions)(experimental) Auto-close stale issues and pull requests.JavaProject.BuildertestDeps(List<String> testDeps)(experimental) List of test dependencies for this project.JavaProject.Builderurl(String url)(experimental) The URL, like the name, is not required.JavaProject.Builderversion(String version)(experimental) This is the last piece of the naming puzzle.JavaProject.Buildervscode(Boolean vscode)(experimental) Enable VSCode integration.
-
-
-
Method Detail
-
create
@Stability(Experimental) public static JavaProject.Builder create()
- Returns:
- a new instance of
JavaProject.Builder.
-
name
@Stability(Experimental) public JavaProject.Builder name(String name)
(experimental) This is the name of your project.Default: $BASEDIR
- Parameters:
name- This is the name of your project. This parameter is required.- Returns:
this
-
commitGenerated
@Stability(Experimental) public JavaProject.Builder commitGenerated(Boolean commitGenerated)
(experimental) Whether to commit the managed files by default.Default: true
- Parameters:
commitGenerated- Whether to commit the managed files by default. This parameter is required.- Returns:
this
-
gitIgnoreOptions
@Stability(Experimental) public JavaProject.Builder gitIgnoreOptions(IgnoreFileOptions gitIgnoreOptions)
(experimental) Configuration options for .gitignore file.- Parameters:
gitIgnoreOptions- Configuration options for .gitignore file. This parameter is required.- Returns:
this
-
gitOptions
@Stability(Experimental) public JavaProject.Builder gitOptions(GitOptions gitOptions)
(experimental) Configuration options for git.- Parameters:
gitOptions- Configuration options for git. This parameter is required.- Returns:
this
-
logging
@Stability(Experimental) public JavaProject.Builder logging(LoggerOptions logging)
(experimental) Configure logging options such as verbosity.Default: {}
- Parameters:
logging- Configure logging options such as verbosity. This parameter is required.- Returns:
this
-
outdir
@Stability(Experimental) public JavaProject.Builder outdir(String outdir)
(experimental) The root directory of the project.Relative to this directory, all files are synthesized.
If this project has a parent, this directory is relative to the parent directory and it cannot be the same as the parent or any of it's other subprojects.
Default: "."
- Parameters:
outdir- The root directory of the project. This parameter is required.- Returns:
this
-
parent
@Stability(Experimental) public JavaProject.Builder parent(Project parent)
(experimental) The parent project, if this project is part of a bigger project.- Parameters:
parent- The parent project, if this project is part of a bigger project. This parameter is required.- Returns:
this
-
projenCommand
@Stability(Experimental) public JavaProject.Builder projenCommand(String projenCommand)
(experimental) The shell command to use in order to run the projen CLI.Can be used to customize in special environments.
Default: "npx projen"
- Parameters:
projenCommand- The shell command to use in order to run the projen CLI. This parameter is required.- Returns:
this
-
projenrcJson
@Stability(Experimental) public JavaProject.Builder projenrcJson(Boolean projenrcJson)
(experimental) Generate (once) .projenrc.json (in JSON). Set tofalsein order to disable .projenrc.json generation.Default: false
- Parameters:
projenrcJson- Generate (once) .projenrc.json (in JSON). Set tofalsein order to disable .projenrc.json generation. This parameter is required.- Returns:
this
-
projenrcJsonOptions
@Stability(Experimental) public JavaProject.Builder projenrcJsonOptions(ProjenrcJsonOptions projenrcJsonOptions)
(experimental) Options for .projenrc.json.Default: - default options
- Parameters:
projenrcJsonOptions- Options for .projenrc.json. This parameter is required.- Returns:
this
-
renovatebot
@Stability(Experimental) public JavaProject.Builder renovatebot(Boolean renovatebot)
(experimental) Use renovatebot to handle dependency upgrades.Default: false
- Parameters:
renovatebot- Use renovatebot to handle dependency upgrades. This parameter is required.- Returns:
this
-
renovatebotOptions
@Stability(Experimental) public JavaProject.Builder renovatebotOptions(RenovatebotOptions renovatebotOptions)
(experimental) Options for renovatebot.Default: - default options
- Parameters:
renovatebotOptions- Options for renovatebot. This parameter is required.- Returns:
this
-
autoApproveOptions
@Stability(Experimental) public JavaProject.Builder autoApproveOptions(AutoApproveOptions autoApproveOptions)
(experimental) Enable and configure the 'auto approve' workflow.Default: - auto approve is disabled
- Parameters:
autoApproveOptions- Enable and configure the 'auto approve' workflow. This parameter is required.- Returns:
this
-
autoMerge
@Stability(Experimental) public JavaProject.Builder autoMerge(Boolean autoMerge)
(experimental) Enable automatic merging on GitHub.Has no effect if
github.mergifyis set to false.Default: true
- Parameters:
autoMerge- Enable automatic merging on GitHub. This parameter is required.- Returns:
this
-
autoMergeOptions
@Stability(Experimental) public JavaProject.Builder autoMergeOptions(AutoMergeOptions autoMergeOptions)
(experimental) Configure options for automatic merging on GitHub.Has no effect if
github.mergifyorautoMergeis set to false.Default: - see defaults in `AutoMergeOptions`
- Parameters:
autoMergeOptions- Configure options for automatic merging on GitHub. This parameter is required.- Returns:
this
-
clobber
@Stability(Experimental) public JavaProject.Builder clobber(Boolean clobber)
(experimental) Add aclobbertask which resets the repo to origin.Default: - true, but false for subprojects
- Parameters:
clobber- Add aclobbertask which resets the repo to origin. This parameter is required.- Returns:
this
-
devContainer
@Stability(Experimental) public JavaProject.Builder devContainer(Boolean devContainer)
(experimental) Add a VSCode development environment (used for GitHub Codespaces).Default: false
- Parameters:
devContainer- Add a VSCode development environment (used for GitHub Codespaces). This parameter is required.- Returns:
this
-
github
@Stability(Experimental) public JavaProject.Builder github(Boolean github)
(experimental) Enable GitHub integration.Enabled by default for root projects. Disabled for non-root projects.
Default: true
- Parameters:
github- Enable GitHub integration. This parameter is required.- Returns:
this
-
githubOptions
@Stability(Experimental) public JavaProject.Builder githubOptions(GitHubOptions githubOptions)
(experimental) Options for GitHub integration.Default: - see GitHubOptions
- Parameters:
githubOptions- Options for GitHub integration. This parameter is required.- Returns:
this
-
gitpod
@Stability(Experimental) public JavaProject.Builder gitpod(Boolean gitpod)
(experimental) Add a Gitpod development environment.Default: false
- Parameters:
gitpod- Add a Gitpod development environment. This parameter is required.- Returns:
this
-
mergify
@Stability(Deprecated) @Deprecated public JavaProject.Builder mergify(Boolean mergify)
Deprecated.usegithubOptions.mergifyinstead(deprecated) Whether mergify should be enabled on this repository or not.Default: true
- Parameters:
mergify- Whether mergify should be enabled on this repository or not. This parameter is required.- Returns:
this
-
mergifyOptions
@Stability(Deprecated) @Deprecated public JavaProject.Builder mergifyOptions(MergifyOptions mergifyOptions)
Deprecated.usegithubOptions.mergifyOptionsinstead(deprecated) Options for mergify.Default: - default options
- Parameters:
mergifyOptions- Options for mergify. This parameter is required.- Returns:
this
-
projectType
@Stability(Deprecated) @Deprecated public JavaProject.Builder projectType(ProjectType projectType)
Deprecated.no longer supported at the base project level(deprecated) Which type of project this is (library/app).Default: ProjectType.UNKNOWN
- Parameters:
projectType- Which type of project this is (library/app). This parameter is required.- Returns:
this
-
projenCredentials
@Stability(Experimental) public JavaProject.Builder projenCredentials(GithubCredentials projenCredentials)
(experimental) Choose a method of providing GitHub API access for projen workflows.Default: - use a personal access token named PROJEN_GITHUB_TOKEN
- Parameters:
projenCredentials- Choose a method of providing GitHub API access for projen workflows. This parameter is required.- Returns:
this
-
projenTokenSecret
@Stability(Deprecated) @Deprecated public JavaProject.Builder projenTokenSecret(String projenTokenSecret)
Deprecated.useprojenCredentials(deprecated) The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.This token needs to have the
repo,workflowsandpackagesscope.Default: "PROJEN_GITHUB_TOKEN"
- Parameters:
projenTokenSecret- The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. This parameter is required.- Returns:
this
-
readme
@Stability(Experimental) public JavaProject.Builder readme(SampleReadmeProps readme)
(experimental) The README setup.Default: - { filename: 'README.md', contents: '# replace this' }
Example:
"{ filename: 'readme.md', contents: '# title' }"- Parameters:
readme- The README setup. This parameter is required.- Returns:
this
-
stale
@Stability(Experimental) public JavaProject.Builder stale(Boolean stale)
(experimental) Auto-close of stale issues and pull request.See
staleOptionsfor options.Default: false
- Parameters:
stale- Auto-close of stale issues and pull request. This parameter is required.- Returns:
this
-
staleOptions
@Stability(Experimental) public JavaProject.Builder staleOptions(StaleOptions staleOptions)
(experimental) Auto-close stale issues and pull requests.To disable set
staletofalse.Default: - see defaults in `StaleOptions`
- Parameters:
staleOptions- Auto-close stale issues and pull requests. This parameter is required.- Returns:
this
-
vscode
@Stability(Experimental) public JavaProject.Builder vscode(Boolean vscode)
(experimental) Enable VSCode integration.Enabled by default for root projects. Disabled for non-root projects.
Default: true
- Parameters:
vscode- Enable VSCode integration. This parameter is required.- Returns:
this
-
artifactId
@Stability(Experimental) public JavaProject.Builder artifactId(String artifactId)
(experimental) The artifactId is generally the name that the project is known by.Although the groupId is important, people within the group will rarely mention the groupId in discussion (they are often all be the same ID, such as the MojoHaus project groupId: org.codehaus.mojo). It, along with the groupId, creates a key that separates this project from every other project in the world (at least, it should :) ). Along with the groupId, the artifactId fully defines the artifact's living quarters within the repository. In the case of the above project, my-project lives in $M2_REPO/org/codehaus/mojo/my-project.
Default: "my-app"
- Parameters:
artifactId- The artifactId is generally the name that the project is known by. This parameter is required.- Returns:
this
-
groupId
@Stability(Experimental) public JavaProject.Builder groupId(String groupId)
(experimental) This is generally unique amongst an organization or a project.For example, all core Maven artifacts do (well, should) live under the groupId org.apache.maven. Group ID's do not necessarily use the dot notation, for example, the junit project. Note that the dot-notated groupId does not have to correspond to the package structure that the project contains. It is, however, a good practice to follow. When stored within a repository, the group acts much like the Java packaging structure does in an operating system. The dots are replaced by OS specific directory separators (such as '/' in Unix) which becomes a relative directory structure from the base repository. In the example given, the org.codehaus.mojo group lives within the directory $M2_REPO/org/codehaus/mojo.
Default: "org.acme"
- Parameters:
groupId- This is generally unique amongst an organization or a project. This parameter is required.- Returns:
this
-
version
@Stability(Experimental) public JavaProject.Builder version(String version)
(experimental) This is the last piece of the naming puzzle.groupId:artifactId denotes a single project but they cannot delineate which incarnation of that project we are talking about. Do we want the junit:junit of 2018 (version 4.12), or of 2007 (version 3.8.2)? In short: code changes, those changes should be versioned, and this element keeps those versions in line. It is also used within an artifact's repository to separate versions from each other. my-project version 1.0 files live in the directory structure $M2_REPO/org/codehaus/mojo/my-project/1.0.
Default: "0.1.0"
- Parameters:
version- This is the last piece of the naming puzzle. This parameter is required.- Returns:
this
-
description
@Stability(Experimental) public JavaProject.Builder description(String description)
(experimental) Description of a project is always good.Although this should not replace formal documentation, a quick comment to any readers of the POM is always helpful.
Default: undefined
- Parameters:
description- Description of a project is always good. This parameter is required.- Returns:
this
-
packaging
@Stability(Experimental) public JavaProject.Builder packaging(String packaging)
(experimental) Project packaging format.Default: "jar"
- Parameters:
packaging- Project packaging format. This parameter is required.- Returns:
this
-
parentPom
@Stability(Experimental) public JavaProject.Builder parentPom(ParentPom parentPom)
(experimental) A Parent Pom can be used to have a child project inherit properties/plugins/ect in order to reduce duplication and keep standards across a large amount of repos.Default: undefined
- Parameters:
parentPom- A Parent Pom can be used to have a child project inherit properties/plugins/ect in order to reduce duplication and keep standards across a large amount of repos. This parameter is required.- Returns:
this
-
url
@Stability(Experimental) public JavaProject.Builder url(String url)
(experimental) The URL, like the name, is not required.This is a nice gesture for projects users, however, so that they know where the project lives.
Default: undefined
- Parameters:
url- The URL, like the name, is not required. This parameter is required.- Returns:
this
-
compileOptions
@Stability(Experimental) public JavaProject.Builder compileOptions(MavenCompileOptions compileOptions)
(experimental) Compile options.Default: - defaults
- Parameters:
compileOptions- Compile options. This parameter is required.- Returns:
this
-
deps
@Stability(Experimental) public JavaProject.Builder deps(List<String> deps)
(experimental) List of runtime dependencies for this project.Dependencies use the format:
<groupId>/<artifactId>@<semver>Additional dependencies can be added via
project.addDependency().Default: []
- Parameters:
deps- List of runtime dependencies for this project. This parameter is required.- Returns:
this
-
distdir
@Stability(Experimental) public JavaProject.Builder distdir(String distdir)
(experimental) Final artifact output directory.Default: "dist/java"
- Parameters:
distdir- Final artifact output directory. This parameter is required.- Returns:
this
-
junit
@Stability(Experimental) public JavaProject.Builder junit(Boolean junit)
(experimental) Include junit tests.Default: true
- Parameters:
junit- Include junit tests. This parameter is required.- Returns:
this
-
junitOptions
@Stability(Experimental) public JavaProject.Builder junitOptions(JunitOptions junitOptions)
(experimental) junit options.Default: - defaults
- Parameters:
junitOptions- junit options. This parameter is required.- Returns:
this
-
packagingOptions
@Stability(Experimental) public JavaProject.Builder packagingOptions(MavenPackagingOptions packagingOptions)
(experimental) Packaging options.Default: - defaults
- Parameters:
packagingOptions- Packaging options. This parameter is required.- Returns:
this
-
projenrcJava
@Stability(Experimental) public JavaProject.Builder projenrcJava(Boolean projenrcJava)
(experimental) Use projenrc in java.This will install
projenas a java dependency and will add asynthtask which will compile & executemain()fromsrc/main/java/projenrc.java.Default: true
- Parameters:
projenrcJava- Use projenrc in java. This parameter is required.- Returns:
this
-
projenrcJavaOptions
@Stability(Experimental) public JavaProject.Builder projenrcJavaOptions(ProjenrcOptions projenrcJavaOptions)
(experimental) Options related to projenrc in java.Default: - default options
- Parameters:
projenrcJavaOptions- Options related to projenrc in java. This parameter is required.- Returns:
this
-
testDeps
@Stability(Experimental) public JavaProject.Builder testDeps(List<String> testDeps)
(experimental) List of test dependencies for this project.Dependencies use the format:
<groupId>/<artifactId>@<semver>Additional dependencies can be added via
project.addTestDependency().Default: []
- Parameters:
testDeps- List of test dependencies for this project. This parameter is required.- Returns:
this
-
sample
@Stability(Experimental) public JavaProject.Builder sample(Boolean sample)
(experimental) Include sample code and test if the relevant directories don't exist.Default: true
- Parameters:
sample- Include sample code and test if the relevant directories don't exist. This parameter is required.- Returns:
this
-
sampleJavaPackage
@Stability(Experimental) public JavaProject.Builder sampleJavaPackage(String sampleJavaPackage)
(experimental) The java package to use for the code sample.Default: "org.acme"
- Parameters:
sampleJavaPackage- The java package to use for the code sample. This parameter is required.- Returns:
this
-
build
@Stability(Experimental) public JavaProject build()
- Specified by:
buildin interfacesoftware.amazon.jsii.Builder<JavaProject>- Returns:
- a newly built instance of
JavaProject.
-
-