PR: MNG-838

improve error reporting for bad settings

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@307261 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Brett Leslie Porter 2005-10-08 05:04:25 +00:00
parent cb259a7689
commit 24ebd82f31
5 changed files with 67 additions and 22 deletions

View File

@ -102,7 +102,7 @@ public class DefaultMaven
// ----------------------------------------------------------------------
public MavenExecutionResponse execute( MavenExecutionRequest request )
throws ReactorException
throws ReactorException, SettingsConfigurationException
{
if ( request.getSettings().isOffline() )
{
@ -515,7 +515,7 @@ public class DefaultMaven
* the wagons, shouldn't we?
*/
private void resolveParameters( Settings settings )
throws ComponentLookupException, ComponentLifecycleException
throws ComponentLookupException, ComponentLifecycleException, SettingsConfigurationException
{
WagonManager wagonManager = (WagonManager) container.lookup( WagonManager.ROLE );
@ -525,6 +525,11 @@ public class DefaultMaven
if ( proxy != null )
{
if ( proxy.getHost() == null )
{
throw new SettingsConfigurationException( "Proxy in settings.xml has no host" );
}
wagonManager.addProxy( proxy.getProtocol(), proxy.getHost(), proxy.getPort(), proxy.getUsername(),
proxy.getPassword(), proxy.getNonProxyHosts() );
}

View File

@ -29,9 +29,9 @@ public interface Maven
static String ROLE = Maven.class.getName();
String POMv4 = "pom.xml";
String RELEASE_POMv4 = "release-pom.xml";
MavenExecutionResponse execute( MavenExecutionRequest request )
throws ReactorException;
throws ReactorException, SettingsConfigurationException;
}

View File

@ -0,0 +1,32 @@
package org.apache.maven;
/*
* Copyright 2001-2005 The Apache Software Foundation.
*
* Licensed 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.
*/
/**
* If there was an error in the settings file.
*
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
* @version $Id$
*/
public class SettingsConfigurationException
extends Exception
{
public SettingsConfigurationException( String message )
{
super( message );
}
}

View File

@ -24,6 +24,7 @@ import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.maven.Maven;
import org.apache.maven.SettingsConfigurationException;
import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
@ -152,7 +153,7 @@ public class MavenCli
Properties executionProperties = getExecutionProperties( commandLine );
Settings settings = null;
Settings settings;
try
{
@ -209,11 +210,7 @@ public class MavenCli
}
}
request = createRequest( commandLine,
settings,
eventDispatcher,
loggerManager,
profileManager,
request = createRequest( commandLine, settings, eventDispatcher, loggerManager, profileManager,
executionProperties );
setProjectFileOptions( commandLine, request );
@ -251,6 +248,11 @@ public class MavenCli
showFatalError( "Error executing Maven for a project", e, showErrors );
return 1;
}
catch ( SettingsConfigurationException e )
{
showError( e.getMessage(), e, showErrors );
return 1;
}
if ( response != null && response.isExecutionFailure() )
{
@ -357,12 +359,20 @@ public class MavenCli
}
}
private static MavenExecutionRequest createRequest( CommandLine commandLine,
Settings settings,
EventDispatcher eventDispatcher,
LoggerManager loggerManager,
ProfileManager profileManager,
Properties executionProperties )
private static void showError( String message, Exception e, boolean show )
{
System.err.println( message );
if ( show )
{
System.err.println( "Error stacktrace:" );
e.printStackTrace();
}
}
private static MavenExecutionRequest createRequest( CommandLine commandLine, Settings settings,
EventDispatcher eventDispatcher, LoggerManager loggerManager,
ProfileManager profileManager, Properties executionProperties )
throws ComponentLookupException
{
MavenExecutionRequest request;
@ -371,12 +381,8 @@ public class MavenCli
File userDir = new File( System.getProperty( "user.dir" ) );
request = new DefaultMavenExecutionRequest( localRepository,
settings,
eventDispatcher,
commandLine.getArgList(),
userDir.getPath(),
profileManager,
request = new DefaultMavenExecutionRequest( localRepository, settings, eventDispatcher,
commandLine.getArgList(), userDir.getPath(), profileManager,
executionProperties );
// TODO [BP]: do we set one per mojo? where to do it?

View File

@ -402,12 +402,14 @@
<version>1.0.0</version>
<description><![CDATA[The proxy port.]]></description>
<type>int</type>
<defaultValue>8080</defaultValue>
</field>
<field>
<name>host</name>
<version>1.0.0</version>
<description><![CDATA[The proxy host.]]></description>
<type>String</type>
<required>true</required>
</field>
<field>
<name>nonProxyHosts</name>