| package org.apache.maven.execution; |
| |
| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| import java.io.File; |
| import java.util.Date; |
| import java.util.List; |
| import java.util.Map; |
| import java.util.Properties; |
| |
| import org.apache.maven.artifact.repository.ArtifactRepository; |
| import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy; |
| import org.apache.maven.eventspy.internal.EventSpyDispatcher; |
| import org.apache.maven.model.Profile; |
| import org.apache.maven.project.ProjectBuildingRequest; |
| // |
| // These settings values need to be removed and pushed down into a provider of configuration information |
| // |
| import org.apache.maven.settings.Mirror; |
| import org.apache.maven.settings.Proxy; |
| import org.apache.maven.settings.Server; |
| // |
| import org.apache.maven.toolchain.model.ToolchainModel; |
| import org.codehaus.plexus.logging.Logger; |
| import org.eclipse.aether.RepositoryCache; |
| import org.eclipse.aether.repository.WorkspaceReader; |
| import org.eclipse.aether.transfer.TransferListener; |
| |
| /** |
| * @author Jason van Zyl |
| */ |
| public interface MavenExecutionRequest |
| { |
| // ---------------------------------------------------------------------- |
| // Logging |
| // ---------------------------------------------------------------------- |
| |
| int LOGGING_LEVEL_DEBUG = Logger.LEVEL_DEBUG; |
| |
| int LOGGING_LEVEL_INFO = Logger.LEVEL_INFO; |
| |
| int LOGGING_LEVEL_WARN = Logger.LEVEL_WARN; |
| |
| int LOGGING_LEVEL_ERROR = Logger.LEVEL_ERROR; |
| |
| int LOGGING_LEVEL_FATAL = Logger.LEVEL_FATAL; |
| |
| int LOGGING_LEVEL_DISABLED = Logger.LEVEL_DISABLED; |
| |
| // ---------------------------------------------------------------------- |
| // Reactor Failure Mode |
| // ---------------------------------------------------------------------- |
| |
| String REACTOR_FAIL_FAST = "FAIL_FAST"; |
| |
| String REACTOR_FAIL_AT_END = "FAIL_AT_END"; |
| |
| String REACTOR_FAIL_NEVER = "FAIL_NEVER"; |
| |
| // ---------------------------------------------------------------------- |
| // Reactor Make Mode |
| // ---------------------------------------------------------------------- |
| |
| String REACTOR_MAKE_UPSTREAM = "make-upstream"; |
| |
| String REACTOR_MAKE_DOWNSTREAM = "make-downstream"; |
| |
| String REACTOR_MAKE_BOTH = "make-both"; |
| |
| // ---------------------------------------------------------------------- |
| // Artifact repository policies |
| // ---------------------------------------------------------------------- |
| |
| String CHECKSUM_POLICY_FAIL = ArtifactRepositoryPolicy.CHECKSUM_POLICY_FAIL; |
| |
| String CHECKSUM_POLICY_WARN = ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN; |
| |
| // ---------------------------------------------------------------------- |
| // |
| // ---------------------------------------------------------------------- |
| |
| // Base directory |
| MavenExecutionRequest setBaseDirectory( File basedir ); |
| |
| String getBaseDirectory(); |
| |
| // Timing (remove this) |
| MavenExecutionRequest setStartTime( Date start ); |
| |
| Date getStartTime(); |
| |
| // Goals |
| MavenExecutionRequest setGoals( List<String> goals ); |
| |
| List<String> getGoals(); |
| |
| // Properties |
| |
| /** |
| * Sets the system properties to use for interpolation and profile activation. The system properties are collected |
| * from the runtime environment like {@link System#getProperties()} and environment variables. |
| * |
| * @param systemProperties The system properties, may be {@code null}. |
| * @return This request, never {@code null}. |
| */ |
| MavenExecutionRequest setSystemProperties( Properties systemProperties ); |
| |
| /** |
| * Gets the system properties to use for interpolation and profile activation. The system properties are collected |
| * from the runtime environment like {@link System#getProperties()} and environment variables. |
| * |
| * @return The system properties, never {@code null}. |
| */ |
| Properties getSystemProperties(); |
| |
| /** |
| * Sets the user properties to use for interpolation and profile activation. The user properties have been |
| * configured directly by the user on his discretion, e.g. via the {@code -Dkey=value} parameter on the command |
| * line. |
| * |
| * @param userProperties The user properties, may be {@code null}. |
| * @return This request, never {@code null}. |
| */ |
| MavenExecutionRequest setUserProperties( Properties userProperties ); |
| |
| /** |
| * Gets the user properties to use for interpolation and profile activation. The user properties have been |
| * configured directly by the user on his discretion, e.g. via the {@code -Dkey=value} parameter on the command |
| * line. |
| * |
| * @return The user properties, never {@code null}. |
| */ |
| Properties getUserProperties(); |
| |
| // Reactor |
| MavenExecutionRequest setReactorFailureBehavior( String failureBehavior ); |
| |
| String getReactorFailureBehavior(); |
| |
| MavenExecutionRequest setSelectedProjects( List<String> projects ); |
| |
| List<String> getSelectedProjects(); |
| |
| /** |
| * @param projects the projects to exclude |
| * @return this MavenExecutionRequest |
| * @since 3.2 |
| */ |
| MavenExecutionRequest setExcludedProjects( List<String> projects ); |
| |
| /** |
| * @return the excluded projects, never {@code null} |
| * @since 3.2 |
| */ |
| List<String> getExcludedProjects(); |
| |
| /** |
| * Sets whether the build should be resumed from the data in the resume.properties file. |
| * @param resume Whether or not to resume a previous build. |
| * @return This request, never {@code null}. |
| */ |
| MavenExecutionRequest setResume( boolean resume ); |
| |
| /** |
| * @return Whether the build should be resumed from the data in the resume.properties file. |
| */ |
| boolean isResume(); |
| |
| MavenExecutionRequest setResumeFrom( String project ); |
| |
| String getResumeFrom(); |
| |
| MavenExecutionRequest setMakeBehavior( String makeBehavior ); |
| |
| String getMakeBehavior(); |
| |
| /** |
| * Set's the parallel degree of concurrency used by the build. |
| * |
| * @param degreeOfConcurrency |
| */ |
| void setDegreeOfConcurrency( int degreeOfConcurrency ); |
| |
| /** |
| * @return the degree of concurrency for the build. |
| */ |
| int getDegreeOfConcurrency(); |
| |
| // Recursive (really to just process the top-level POM) |
| MavenExecutionRequest setRecursive( boolean recursive ); |
| |
| boolean isRecursive(); |
| |
| MavenExecutionRequest setPom( File pom ); |
| |
| File getPom(); |
| |
| // Errors |
| MavenExecutionRequest setShowErrors( boolean showErrors ); |
| |
| boolean isShowErrors(); |
| |
| // Transfer listeners |
| MavenExecutionRequest setTransferListener( TransferListener transferListener ); |
| |
| TransferListener getTransferListener(); |
| |
| // Logging |
| MavenExecutionRequest setLoggingLevel( int loggingLevel ); |
| |
| int getLoggingLevel(); |
| |
| // Update snapshots |
| MavenExecutionRequest setUpdateSnapshots( boolean updateSnapshots ); |
| |
| boolean isUpdateSnapshots(); |
| |
| MavenExecutionRequest setNoSnapshotUpdates( boolean noSnapshotUpdates ); |
| |
| boolean isNoSnapshotUpdates(); |
| |
| // Checksum policy |
| MavenExecutionRequest setGlobalChecksumPolicy( String globalChecksumPolicy ); |
| |
| String getGlobalChecksumPolicy(); |
| |
| // Local repository |
| MavenExecutionRequest setLocalRepositoryPath( String localRepository ); |
| |
| MavenExecutionRequest setLocalRepositoryPath( File localRepository ); |
| |
| File getLocalRepositoryPath(); |
| |
| MavenExecutionRequest setLocalRepository( ArtifactRepository repository ); |
| |
| ArtifactRepository getLocalRepository(); |
| |
| // Interactive |
| MavenExecutionRequest setInteractiveMode( boolean interactive ); |
| |
| boolean isInteractiveMode(); |
| |
| // Offline |
| MavenExecutionRequest setOffline( boolean offline ); |
| |
| boolean isOffline(); |
| |
| boolean isCacheTransferError(); |
| |
| MavenExecutionRequest setCacheTransferError( boolean cacheTransferError ); |
| |
| boolean isCacheNotFound(); |
| |
| MavenExecutionRequest setCacheNotFound( boolean cacheNotFound ); |
| |
| // Profiles |
| List<Profile> getProfiles(); |
| |
| MavenExecutionRequest addProfile( Profile profile ); |
| |
| MavenExecutionRequest setProfiles( List<Profile> profiles ); |
| |
| /** |
| * @deprecated Use {@link #getProfileActivation()}. |
| */ |
| @Deprecated |
| MavenExecutionRequest addActiveProfile( String profile ); |
| |
| /** |
| * @deprecated Use {@link #getProfileActivation()}. |
| */ |
| @Deprecated |
| MavenExecutionRequest addActiveProfiles( List<String> profiles ); |
| |
| /** |
| * @deprecated Use {@link #getProfileActivation()}. |
| */ |
| @Deprecated |
| MavenExecutionRequest setActiveProfiles( List<String> profiles ); |
| |
| /** |
| * @return The list of profiles that the user wants to activate. |
| * @deprecated Use {@link #getProfileActivation()}. |
| */ |
| @Deprecated |
| List<String> getActiveProfiles(); |
| |
| /** |
| * @deprecated Use {@link #getProfileActivation()}. |
| */ |
| @Deprecated |
| MavenExecutionRequest addInactiveProfile( String profile ); |
| |
| /** |
| * @deprecated Use {@link #getProfileActivation()}. |
| */ |
| @Deprecated |
| MavenExecutionRequest addInactiveProfiles( List<String> profiles ); |
| |
| /** |
| * @deprecated Use {@link #getProfileActivation()}. |
| */ |
| @Deprecated |
| MavenExecutionRequest setInactiveProfiles( List<String> profiles ); |
| |
| /** |
| * @return The list of profiles that the user wants to de-activate. |
| * @deprecated Use {@link #getProfileActivation()}. |
| */ |
| @Deprecated |
| List<String> getInactiveProfiles(); |
| |
| /** |
| * Return the requested activation(s) of profile(s) in this execution. |
| * @return requested (de-)activation(s) of profile(s) in this execution. Never {@code null}. |
| */ |
| ProfileActivation getProfileActivation(); |
| |
| // Proxies |
| List<Proxy> getProxies(); |
| |
| MavenExecutionRequest setProxies( List<Proxy> proxies ); |
| |
| MavenExecutionRequest addProxy( Proxy proxy ); |
| |
| // Servers |
| List<Server> getServers(); |
| |
| MavenExecutionRequest setServers( List<Server> servers ); |
| |
| MavenExecutionRequest addServer( Server server ); |
| |
| // Mirrors |
| List<Mirror> getMirrors(); |
| |
| MavenExecutionRequest setMirrors( List<Mirror> mirrors ); |
| |
| MavenExecutionRequest addMirror( Mirror mirror ); |
| |
| // Plugin groups |
| List<String> getPluginGroups(); |
| |
| MavenExecutionRequest setPluginGroups( List<String> pluginGroups ); |
| |
| MavenExecutionRequest addPluginGroup( String pluginGroup ); |
| |
| MavenExecutionRequest addPluginGroups( List<String> pluginGroups ); |
| |
| boolean isProjectPresent(); |
| |
| MavenExecutionRequest setProjectPresent( boolean isProjectPresent ); |
| |
| File getUserSettingsFile(); |
| |
| MavenExecutionRequest setUserSettingsFile( File userSettingsFile ); |
| |
| File getGlobalSettingsFile(); |
| |
| MavenExecutionRequest setGlobalSettingsFile( File globalSettingsFile ); |
| |
| MavenExecutionRequest addRemoteRepository( ArtifactRepository repository ); |
| |
| MavenExecutionRequest addPluginArtifactRepository( ArtifactRepository repository ); |
| |
| /** |
| * Set a new list of remote repositories to use the execution request. This is necessary if you perform |
| * transformations on the remote repositories being used. For example if you replace existing repositories with |
| * mirrors then it's easier to just replace the whole list with a new list of transformed repositories. |
| * |
| * @param repositories |
| * @return This request, never {@code null}. |
| */ |
| MavenExecutionRequest setRemoteRepositories( List<ArtifactRepository> repositories ); |
| |
| List<ArtifactRepository> getRemoteRepositories(); |
| |
| MavenExecutionRequest setPluginArtifactRepositories( List<ArtifactRepository> repositories ); |
| |
| List<ArtifactRepository> getPluginArtifactRepositories(); |
| |
| MavenExecutionRequest setRepositoryCache( RepositoryCache repositoryCache ); |
| |
| RepositoryCache getRepositoryCache(); |
| |
| WorkspaceReader getWorkspaceReader(); |
| |
| MavenExecutionRequest setWorkspaceReader( WorkspaceReader workspaceReader ); |
| |
| File getUserToolchainsFile(); |
| |
| MavenExecutionRequest setUserToolchainsFile( File userToolchainsFile ); |
| |
| /** |
| * |
| * |
| * @return the global toolchains file |
| * @since 3.3.0 |
| */ |
| File getGlobalToolchainsFile(); |
| |
| /** |
| * |
| * @param globalToolchainsFile the global toolchains file |
| * @return this request |
| * @since 3.3.0 |
| */ |
| MavenExecutionRequest setGlobalToolchainsFile( File globalToolchainsFile ); |
| |
| ExecutionListener getExecutionListener(); |
| |
| MavenExecutionRequest setExecutionListener( ExecutionListener executionListener ); |
| |
| ProjectBuildingRequest getProjectBuildingRequest(); |
| |
| /** |
| * @since 3.1 |
| */ |
| boolean isUseLegacyLocalRepository(); |
| |
| /** |
| * @since 3.1 |
| */ |
| MavenExecutionRequest setUseLegacyLocalRepository( boolean useLegacyLocalRepository ); |
| |
| /** |
| * Controls the {@link org.apache.maven.lifecycle.internal.builder.Builder} used by Maven by specification |
| * of the builder's id. |
| * |
| * @since 3.2.0 |
| */ |
| MavenExecutionRequest setBuilderId( String builderId ); |
| |
| /** |
| * Controls the {@link org.apache.maven.lifecycle.internal.builder.Builder} used by Maven by specification |
| * of the builders id. |
| * |
| * @since 3.2.0 |
| */ |
| String getBuilderId(); |
| |
| /** |
| * |
| * @param toolchains all toolchains grouped by type |
| * @return this request |
| * @since 3.3.0 |
| */ |
| MavenExecutionRequest setToolchains( Map<String, List<ToolchainModel>> toolchains ); |
| |
| /** |
| * |
| * @return all toolchains grouped by type, never {@code null} |
| * @since 3.3.0 |
| */ |
| Map<String, List<ToolchainModel>> getToolchains(); |
| |
| /** |
| * @since 3.3.0 |
| */ |
| void setMultiModuleProjectDirectory( File file ); |
| |
| /** |
| * @since 3.3.0 |
| */ |
| File getMultiModuleProjectDirectory(); |
| |
| /** |
| * @since 3.3.0 |
| */ |
| MavenExecutionRequest setEventSpyDispatcher( EventSpyDispatcher eventSpyDispatcher ); |
| |
| /** |
| * @since 3.3.0 |
| */ |
| EventSpyDispatcher getEventSpyDispatcher(); |
| |
| /** |
| * @since 3.3.0 |
| */ |
| Map<String, Object> getData(); |
| } |