You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2016/07/14 19:34:54 UTC
svn commit: r1752730 -
/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java
Author: khmarbaise
Date: Thu Jul 14 19:34:53 2016
New Revision: 1752730
URL: http://svn.apache.org/viewvc?rev=1752730&view=rev
Log:
Refactored code
Modified:
maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java
Modified: maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java?rev=1752730&r1=1752729&r2=1752730&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/AbstractInvokerMojo.java Thu Jul 14 19:34:53 2016
@@ -81,10 +81,10 @@ import org.apache.maven.shared.invoker.I
import org.apache.maven.shared.invoker.Invoker;
import org.apache.maven.shared.invoker.MavenCommandLineBuilder;
import org.apache.maven.shared.invoker.MavenInvocationException;
-import org.apache.maven.shared.utils.logging.MessageUtils;
import org.apache.maven.shared.scriptinterpreter.RunErrorException;
import org.apache.maven.shared.scriptinterpreter.RunFailureException;
import org.apache.maven.shared.scriptinterpreter.ScriptRunner;
+import org.apache.maven.shared.utils.logging.MessageUtils;
import org.codehaus.plexus.interpolation.InterpolationException;
import org.codehaus.plexus.interpolation.Interpolator;
import org.codehaus.plexus.interpolation.MapBasedValueSource;
@@ -1160,71 +1160,8 @@ public abstract class AbstractInvokerMoj
buildInterpolatedFile( settingsFile, interpolatedSettingsFile );
}
- // -----------------------------------------------
- // merge settings file
- // -----------------------------------------------
-
- SettingsXpp3Writer settingsWriter = new SettingsXpp3Writer();
-
- File mergedSettingsFile;
- Settings mergedSettings = this.settings;
- if ( mergeUserSettings )
- {
- if ( interpolatedSettingsFile != null )
- {
- // Have to merge the specified settings file (dominant) and the one of the invoking Maven process
- try
- {
- SettingsBuildingRequest request = new DefaultSettingsBuildingRequest();
- request.setGlobalSettingsFile( interpolatedSettingsFile );
-
- Settings dominantSettings = settingsBuilder.build( request ).getEffectiveSettings();
- Settings recessiveSettings = cloneSettings();
- SettingsUtils.merge( dominantSettings, recessiveSettings, TrackableBase.USER_LEVEL );
+ File mergedSettingsFile = mergeSettings( interpolatedSettingsFile );
- mergedSettings = dominantSettings;
- getLog().debug( "Merged specified settings file with settings of invoking process" );
- }
- catch ( SettingsBuildingException e )
- {
- throw new MojoExecutionException( "Could not read specified settings file", e );
- }
- }
- }
- if ( this.settingsFile != null && !mergeUserSettings )
- {
- mergedSettingsFile = interpolatedSettingsFile;
- }
- else
- {
- try
- {
- mergedSettingsFile = File.createTempFile( "invoker-settings", ".xml" );
-
- FileWriter fileWriter = null;
- try
- {
- fileWriter = new FileWriter( mergedSettingsFile );
- settingsWriter.write( fileWriter, mergedSettings );
- fileWriter.close();
- fileWriter = null;
- }
- finally
- {
- IOUtil.close( fileWriter );
- }
-
- if ( getLog().isDebugEnabled() )
- {
- getLog().debug( "Created temporary file for invoker settings.xml: "
- + mergedSettingsFile.getAbsolutePath() );
- }
- }
- catch ( IOException e )
- {
- throw new MojoExecutionException( "Could not create temporary file for invoker settings.xml", e );
- }
- }
final File finalSettingsFile = mergedSettingsFile;
if ( mavenHome != null )
@@ -1308,6 +1245,89 @@ public abstract class AbstractInvokerMoj
}
}
+ /**
+ * Merge the settings file
+ *
+ * @param interpolatedSettingsFile The interpolated settings file.
+ * @return The merged settings file.
+ * @throws MojoExecutionException Fail the build in case the merged settings file can't be created.
+ */
+ private File mergeSettings( File interpolatedSettingsFile )
+ throws MojoExecutionException
+ {
+ File mergedSettingsFile;
+ Settings mergedSettings = this.settings;
+ if ( mergeUserSettings )
+ {
+ if ( interpolatedSettingsFile != null )
+ {
+ // Have to merge the specified settings file (dominant) and the one of the invoking Maven process
+ try
+ {
+ SettingsBuildingRequest request = new DefaultSettingsBuildingRequest();
+ request.setGlobalSettingsFile( interpolatedSettingsFile );
+
+ Settings dominantSettings = settingsBuilder.build( request ).getEffectiveSettings();
+ Settings recessiveSettings = cloneSettings();
+ SettingsUtils.merge( dominantSettings, recessiveSettings, TrackableBase.USER_LEVEL );
+
+ mergedSettings = dominantSettings;
+ getLog().debug( "Merged specified settings file with settings of invoking process" );
+ }
+ catch ( SettingsBuildingException e )
+ {
+ throw new MojoExecutionException( "Could not read specified settings file", e );
+ }
+ }
+ }
+
+ if ( this.settingsFile != null && !mergeUserSettings )
+ {
+ mergedSettingsFile = interpolatedSettingsFile;
+ }
+ else
+ {
+ try
+ {
+ mergedSettingsFile = writeMergedSettingsFile( mergedSettings );
+ }
+ catch ( IOException e )
+ {
+ throw new MojoExecutionException( "Could not create temporary file for invoker settings.xml", e );
+ }
+ }
+ return mergedSettingsFile;
+ }
+
+ private File writeMergedSettingsFile( Settings mergedSettings )
+ throws IOException
+ {
+ File mergedSettingsFile;
+ mergedSettingsFile = File.createTempFile( "invoker-settings", ".xml" );
+
+ SettingsXpp3Writer settingsWriter = new SettingsXpp3Writer();
+
+ FileWriter fileWriter = null;
+ try
+ {
+ fileWriter = new FileWriter( mergedSettingsFile );
+ settingsWriter.write( fileWriter, mergedSettings );
+ fileWriter.close();
+ fileWriter = null;
+ }
+ finally
+ {
+ IOUtil.close( fileWriter );
+ }
+
+ if ( getLog().isDebugEnabled() )
+ {
+ getLog().debug( "Created temporary file for invoker settings.xml: "
+ + mergedSettingsFile.getAbsolutePath() );
+ }
+ return mergedSettingsFile;
+ }
+
private Settings cloneSettings()
{
Settings recessiveSettings = SettingsUtils.copySettings( this.settings );
@@ -1694,6 +1714,7 @@ public abstract class AbstractInvokerMoj
if ( mavenHome != null )
{
invoker.setMavenHome( mavenHome );
+ // FIXME: Should we really take care of M2_HOME?
request.addShellEnvironment( "M2_HOME", mavenHome.getAbsolutePath() );
}