Class Maven
- All Implemented Interfaces:
ExtensionPoint
,Describable<Builder>
,BuildStep
- Author:
- Kohsuke Kawaguchi
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
static final class
Represents a Maven installation in a system.static class
Automatic Maven installer from apache.org.static interface
Optional interface that can be implemented byAbstractProject
that has "contextual"Maven.MavenInstallation
associated with it.Nested classes/interfaces inherited from interface hudson.tasks.BuildStep
BuildStep.PublisherList
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
-
Field Summary
Modifier and TypeFieldDescriptionstatic Maven.DescriptorImpl
Deprecated.final String
MAVEN_OPTS if not null.final String
IdentifiesMaven.MavenInstallation
to be used.final String
Optional POM file path relative to the workspace.final String
Optional properties to be passed to Maven.final String
The targets and other maven options.boolean
If true, the build will use its own local Maven repository via "-Dmaven.repo.local=...".Fields inherited from interface hudson.tasks.BuildStep
BUILDERS, PUBLISHERS
-
Constructor Summary
ConstructorDescriptionMaven
(String targets, String name, String pom, String properties, String jvmOptions, boolean usePrivateRepository) Maven
(String targets, String name, String pom, String properties, String jvmOptions, boolean usePrivateRepository, SettingsProvider settings, GlobalSettingsProvider globalSettings) Maven
(String targets, String name, String pom, String properties, String jvmOptions, boolean usePrivateRepository, SettingsProvider settings, GlobalSettingsProvider globalSettings, boolean injectBuildVariables) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
buildEnvVars
(EnvVars env, Maven.MavenInstallation mi) Build up the environment variables toward the Maven launch.Gets the descriptor for this instance.getMaven()
Gets the Maven to invoke, or null to invoke the default one.boolean
boolean
perform
(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) Runs the step over the given build and reports the progress to the listener.protected void
setGlobalSettings
(GlobalSettingsProvider globalSettings) protected void
setSettings
(SettingsProvider settings) void
setUsePrivateRepository
(boolean usePrivateRepository) boolean
protected void
wrapUpArguments
(ArgumentListBuilder args, String normalizedTarget, AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) Allows the derived type to make additional modifications to the arguments list.Methods inherited from class hudson.tasks.Builder
all, getRequiredMonitorService, prebuild
Methods inherited from class hudson.tasks.BuildStepCompatibilityLayer
getProjectAction, getProjectAction, getProjectActions, perform, prebuild
-
Field Details
-
targets
The targets and other maven options. Can be separated by SP or NL. -
mavenName
IdentifiesMaven.MavenInstallation
to be used. -
jvmOptions
MAVEN_OPTS if not null. -
pom
Optional POM file path relative to the workspace. Used for the Maven '-f' option. -
properties
Optional properties to be passed to Maven. FollowsProperties
syntax. -
usePrivateRepository
public boolean usePrivateRepositoryIf true, the build will use its own local Maven repository via "-Dmaven.repo.local=...".This would consume additional disk space, but provides isolation with other builds on the same machine, such as mixing SNAPSHOTS. Maven also doesn't try to coordinate the concurrent access to Maven repositories from multiple Maven process, so this helps there too. Identical to logic used in maven-plugin.
- Since:
- 1.322
-
DESCRIPTOR
@Deprecated @Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public static Maven.DescriptorImpl DESCRIPTORDeprecated.as of 1.286 UseJenkins.getDescriptorByType(Class)
to obtain the current instance. For compatibility, this field retains the last createdMaven.DescriptorImpl
.
-
-
Constructor Details
-
Maven
-
Maven
-
Maven
-
Maven
public Maven(String targets, String name, String pom, String properties, String jvmOptions, boolean usePrivateRepository, SettingsProvider settings, GlobalSettingsProvider globalSettings) -
Maven
@DataBoundConstructor public Maven(String targets, String name, String pom, String properties, String jvmOptions, boolean usePrivateRepository, SettingsProvider settings, GlobalSettingsProvider globalSettings, boolean injectBuildVariables)
-
-
Method Details
-
getTargets
-
getSettings
- Since:
- 1.491
-
setSettings
-
getGlobalSettings
- Since:
- 1.491
-
setGlobalSettings
-
setUsePrivateRepository
public void setUsePrivateRepository(boolean usePrivateRepository) -
usesPrivateRepository
public boolean usesPrivateRepository() -
isInjectBuildVariables
@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public boolean isInjectBuildVariables() -
getMaven
Gets the Maven to invoke, or null to invoke the default one. -
perform
public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws IOException, InterruptedExceptionDescription copied from interface:BuildStep
Runs the step over the given build and reports the progress to the listener.A plugin can contribute the action object to
Actionable.getActions()
so that a 'report' becomes a part of the persisted data ofBuild
. This is how JUnit plugin attaches the test report to a build page, for example.When this build step needs to make (direct or indirect) permission checks to
ACL
(for example, to locate other projects by name, build them, or access their artifacts) then it must be run under a specificAuthentication
. In such a case, the implementation should check whetherJenkins.getAuthentication2()
isACL.SYSTEM2
, and if so, replace it for the duration of this step withJenkins.ANONYMOUS
. (Either usingACL.impersonate2(org.springframework.security.core.Authentication)
, or by making explicit calls toACL.hasPermission2(Authentication, Permission)
.) This would typically happen when noQueueItemAuthenticator
was available, configured, and active.- Specified by:
perform
in interfaceBuildStep
- Overrides:
perform
in classBuildStepCompatibilityLayer
- Returns:
- Delegates to
SimpleBuildStep.perform(Run, FilePath, Launcher, TaskListener)
if possible, always returning true or throwing an error. - Throws:
IOException
- If the implementation wants to abort the processing when anIOException
happens, it can simply propagate the exception to the caller. This will cause the build to fail, with the default error message. Implementations are encouraged to catchIOException
on its own to provide a better error message, if it can do so, so that users have better understanding on why it failed.InterruptedException
- If the build is interrupted by the user (in an attempt to abort the build.) Normally theBuildStep
implementations may simply forward the exception it got from its lower-level functions.
-
wrapUpArguments
protected void wrapUpArguments(ArgumentListBuilder args, String normalizedTarget, AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws IOException, InterruptedExceptionAllows the derived type to make additional modifications to the arguments list.- Throws:
IOException
InterruptedException
- Since:
- 1.344
-
buildEnvVars
protected void buildEnvVars(EnvVars env, Maven.MavenInstallation mi) throws IOException, InterruptedException Build up the environment variables toward the Maven launch.- Throws:
IOException
InterruptedException
-
getDescriptor
Description copied from interface:Describable
Gets the descriptor for this instance.Descriptor
is a singleton for every concreteDescribable
implementation, so ifa.getClass() == b.getClass()
then by defaulta.getDescriptor() == b.getDescriptor()
as well. (In rare cases a single implementation class may be used for instances with distinct descriptors.)- Specified by:
getDescriptor
in interfaceDescribable<Builder>
- Overrides:
getDescriptor
in classBuilder
-
Jenkins.getDescriptorByType(Class)
to obtain the current instance.