Package io.github.cdklabs.projen.java
Class PomOptions.Builder
- java.lang.Object
-
- io.github.cdklabs.projen.java.PomOptions.Builder
-
- All Implemented Interfaces:
software.amazon.jsii.Builder<PomOptions>
- Enclosing interface:
- PomOptions
@Stability(Experimental) public static final class PomOptions.Builder extends Object implements software.amazon.jsii.Builder<PomOptions>
A builder forPomOptions
-
-
Constructor Summary
Constructors Constructor Description Builder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PomOptions.BuilderartifactId(String artifactId)Sets the value ofPomOptions.getArtifactId()PomOptionsbuild()Builds the configured instance.PomOptions.Builderdescription(String description)Sets the value ofPomOptions.getDescription()PomOptions.BuildergroupId(String groupId)Sets the value ofPomOptions.getGroupId()PomOptions.Builderpackaging(String packaging)Sets the value ofPomOptions.getPackaging()PomOptions.BuilderparentPom(ParentPom parentPom)Sets the value ofPomOptions.getParentPom()PomOptions.Builderurl(String url)Sets the value ofPomOptions.getUrl()PomOptions.Builderversion(String version)Sets the value ofPomOptions.getVersion()
-
-
-
Method Detail
-
artifactId
@Stability(Experimental) public PomOptions.Builder artifactId(String artifactId)
Sets the value ofPomOptions.getArtifactId()- Parameters:
artifactId- The artifactId is generally the name that the project is known by. This parameter is required. 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.- Returns:
this
-
groupId
@Stability(Experimental) public PomOptions.Builder groupId(String groupId)
Sets the value ofPomOptions.getGroupId()- Parameters:
groupId- This is generally unique amongst an organization or a project. This parameter is required. 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.- Returns:
this
-
version
@Stability(Experimental) public PomOptions.Builder version(String version)
Sets the value ofPomOptions.getVersion()- Parameters:
version- This is the last piece of the naming puzzle. This parameter is required. 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.- Returns:
this
-
description
@Stability(Experimental) public PomOptions.Builder description(String description)
Sets the value ofPomOptions.getDescription()- Parameters:
description- 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.- Returns:
this
-
packaging
@Stability(Experimental) public PomOptions.Builder packaging(String packaging)
Sets the value ofPomOptions.getPackaging()- Parameters:
packaging- Project packaging format.- Returns:
this
-
parentPom
@Stability(Experimental) public PomOptions.Builder parentPom(ParentPom parentPom)
Sets the value ofPomOptions.getParentPom()- 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.- Returns:
this
-
url
@Stability(Experimental) public PomOptions.Builder url(String url)
Sets the value ofPomOptions.getUrl()- Parameters:
url- 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.- Returns:
this
-
build
@Stability(Experimental) public PomOptions build()
Builds the configured instance.- Specified by:
buildin interfacesoftware.amazon.jsii.Builder<PomOptions>- Returns:
- a new instance of
PomOptions - Throws:
NullPointerException- if any required attribute was not provided
-
-