mirror of https://github.com/apache/maven.git
parent
c229278477
commit
4476026c52
|
@ -24,7 +24,7 @@ import java.io.PrintWriter;
|
|||
|
||||
import org.apache.commons.cli.CommandLine;
|
||||
import org.apache.commons.cli.CommandLineParser;
|
||||
import org.apache.commons.cli.GnuParser;
|
||||
import org.apache.commons.cli.DefaultParser;
|
||||
import org.apache.commons.cli.HelpFormatter;
|
||||
import org.apache.commons.cli.Option;
|
||||
import org.apache.commons.cli.Options;
|
||||
|
@ -123,7 +123,7 @@ public class CLIManager
|
|||
options = new Options();
|
||||
options.addOption( Option.builder( Character.toString( HELP ) ).longOpt( "help" ).desc( "Display help information" ).build() );
|
||||
options.addOption( Option.builder( Character.toString( ALTERNATE_POM_FILE ) ).longOpt( "file" ).hasArg().desc( "Force the use of an alternate POM file (or directory with pom.xml)" ).build() );
|
||||
options.addOption( Option.builder( Character.toString( SET_SYSTEM_PROPERTY ) ).hasArg().desc( "Define a system property" ).build() );
|
||||
options.addOption( Option.builder( Character.toString( SET_SYSTEM_PROPERTY ) ).numberOfArgs( 2 ).valueSeparator( '=' ).desc( "Define a system property" ).build() );
|
||||
options.addOption( Option.builder( Character.toString( OFFLINE ) ).longOpt( "offline" ).desc( "Work offline" ).build() );
|
||||
options.addOption( Option.builder( Character.toString( VERSION ) ).longOpt( "version" ).desc( "Display version information" ).build() );
|
||||
options.addOption( Option.builder( Character.toString( QUIET ) ).longOpt( "quiet" ).desc( "Quiet output - only show errors" ).build() );
|
||||
|
@ -169,7 +169,7 @@ public class CLIManager
|
|||
// We need to eat any quotes surrounding arguments...
|
||||
String[] cleanArgs = CleanArgument.cleanArgs( args );
|
||||
|
||||
CommandLineParser parser = new GnuParser();
|
||||
CommandLineParser parser = new DefaultParser();
|
||||
|
||||
return parser.parse( options, cleanArgs );
|
||||
}
|
||||
|
|
|
@ -1718,18 +1718,11 @@ public class MavenCli
|
|||
// are most dominant.
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
if ( commandLine.hasOption( CLIManager.SET_SYSTEM_PROPERTY ) )
|
||||
{
|
||||
String[] defStrs = commandLine.getOptionValues( CLIManager.SET_SYSTEM_PROPERTY );
|
||||
|
||||
if ( defStrs != null )
|
||||
{
|
||||
for ( String defStr : defStrs )
|
||||
{
|
||||
setCliProperty( defStr, userProperties );
|
||||
}
|
||||
}
|
||||
}
|
||||
final Properties userSpecifiedProperties = commandLine.getOptionProperties(
|
||||
String.valueOf( CLIManager.SET_SYSTEM_PROPERTY ) );
|
||||
userSpecifiedProperties.forEach(
|
||||
( prop, value ) -> setCliProperty( (String) prop, (String) value, userProperties )
|
||||
);
|
||||
|
||||
SystemProperties.addSystemProperties( systemProperties );
|
||||
|
||||
|
@ -1747,27 +1740,8 @@ public class MavenCli
|
|||
systemProperties.setProperty( "maven.build.version", mavenBuildVersion );
|
||||
}
|
||||
|
||||
private static void setCliProperty( String property, Properties properties )
|
||||
private static void setCliProperty( String name, String value, Properties properties )
|
||||
{
|
||||
String name;
|
||||
|
||||
String value;
|
||||
|
||||
int i = property.indexOf( '=' );
|
||||
|
||||
if ( i <= 0 )
|
||||
{
|
||||
name = property.trim();
|
||||
|
||||
value = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
name = property.substring( 0, i ).trim();
|
||||
|
||||
value = property.substring( i + 1 );
|
||||
}
|
||||
|
||||
properties.setProperty( name, value );
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
package org.apache.maven.cli;
|
||||
|
||||
/*
|
||||
* 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 static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import org.apache.commons.cli.CommandLine;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class CLIManagerTest
|
||||
{
|
||||
private CLIManager cliManager;
|
||||
|
||||
@BeforeEach
|
||||
public void setup()
|
||||
{
|
||||
cliManager = new CLIManager();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void spacedOptions()
|
||||
throws Exception
|
||||
{
|
||||
CommandLine cmdLine = cliManager.parse( "-X -Dx=1 -D y=2 test".split( " " ) );
|
||||
assertTrue( cmdLine.hasOption( CLIManager.VERBOSE ) );
|
||||
assertThat( cmdLine.getOptionValues( CLIManager.SET_SYSTEM_PROPERTY )[0], is( "x=1" ) );
|
||||
assertThat( cmdLine.getOptionValues( CLIManager.SET_SYSTEM_PROPERTY )[1], is( "y=2" ) );
|
||||
}
|
||||
|
||||
}
|
|
@ -45,11 +45,11 @@ import java.util.Collections;
|
|||
import java.util.List;
|
||||
|
||||
import org.apache.commons.cli.CommandLine;
|
||||
import org.apache.commons.cli.GnuParser;
|
||||
import org.apache.commons.cli.CommandLineParser;
|
||||
import org.apache.commons.cli.DefaultParser;
|
||||
import org.apache.commons.cli.Option;
|
||||
import org.apache.commons.cli.Options;
|
||||
import org.apache.commons.cli.ParseException;
|
||||
import org.apache.commons.cli.Parser;
|
||||
import org.apache.maven.Maven;
|
||||
import org.apache.maven.eventspy.internal.EventSpyDispatcher;
|
||||
import org.apache.maven.execution.MavenExecutionRequest;
|
||||
|
@ -96,7 +96,7 @@ public class MavenCliTest
|
|||
@Test
|
||||
public void testPerformProfileActivation() throws ParseException
|
||||
{
|
||||
final Parser parser = new GnuParser();
|
||||
final CommandLineParser parser = new DefaultParser();
|
||||
|
||||
final Options options = new Options();
|
||||
options.addOption( Option.builder( Character.toString( CLIManager.ACTIVATE_PROFILES ) ).hasArg().build() );
|
||||
|
@ -122,7 +122,7 @@ public class MavenCliTest
|
|||
@Test
|
||||
public void testDetermineProjectActivation() throws ParseException
|
||||
{
|
||||
final Parser parser = new GnuParser();
|
||||
final CommandLineParser parser = new DefaultParser();
|
||||
|
||||
final Options options = new Options();
|
||||
options.addOption( Option.builder( CLIManager.PROJECT_LIST ).hasArg().build() );
|
||||
|
@ -492,6 +492,77 @@ public class MavenCliTest
|
|||
assertEquals( MessageUtils.stripAnsiCodes( versionOut ), versionOut );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void populatePropertiesCanContainEqualsSign() throws Exception
|
||||
{
|
||||
// Arrange
|
||||
CliRequest request = new CliRequest( new String[] { "-Dw=x=y", "validate" }, null );
|
||||
|
||||
// Act
|
||||
cli.cli( request );
|
||||
cli.properties( request );
|
||||
|
||||
// Assert
|
||||
assertThat( request.getUserProperties().getProperty( "w" ), is( "x=y" ) );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void populatePropertiesSpace() throws Exception
|
||||
{
|
||||
// Arrange
|
||||
CliRequest request = new CliRequest( new String[] { "-D", "z=2", "validate" }, null );
|
||||
|
||||
// Act
|
||||
cli.cli( request );
|
||||
cli.properties( request );
|
||||
|
||||
// Assert
|
||||
assertThat( request.getUserProperties().getProperty( "z" ), is( "2" ) );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void populatePropertiesShorthand() throws Exception
|
||||
{
|
||||
// Arrange
|
||||
CliRequest request = new CliRequest( new String[] { "-Dx", "validate" }, null );
|
||||
|
||||
// Act
|
||||
cli.cli( request );
|
||||
cli.properties( request );
|
||||
|
||||
// Assert
|
||||
assertThat( request.getUserProperties().getProperty( "x" ), is( "true" ) );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void populatePropertiesMultiple() throws Exception
|
||||
{
|
||||
// Arrange
|
||||
CliRequest request = new CliRequest( new String[] { "-Dx=1", "-Dy", "validate" }, null );
|
||||
|
||||
// Act
|
||||
cli.cli( request );
|
||||
cli.properties( request );
|
||||
|
||||
// Assert
|
||||
assertThat( request.getUserProperties().getProperty( "x" ), is( "1" ) );
|
||||
assertThat( request.getUserProperties().getProperty( "y" ), is( "true" ) );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void populatePropertiesOverwrite() throws Exception
|
||||
{
|
||||
// Arrange
|
||||
CliRequest request = new CliRequest( new String[] { "-Dx", "-Dx=false", "validate" }, null );
|
||||
|
||||
// Act
|
||||
cli.cli( request );
|
||||
cli.properties( request );
|
||||
|
||||
// Assert
|
||||
assertThat( request.getUserProperties().getProperty( "x" ), is( "false" ) );
|
||||
}
|
||||
|
||||
private MavenProject createMavenProject( String groupId, String artifactId )
|
||||
{
|
||||
MavenProject project = new MavenProject();
|
||||
|
|
2
pom.xml
2
pom.xml
|
@ -49,7 +49,7 @@ under the License.
|
|||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<classWorldsVersion>2.6.0</classWorldsVersion>
|
||||
<commonsCliVersion>1.4</commonsCliVersion>
|
||||
<commonsCliVersion>1.5.0</commonsCliVersion>
|
||||
<commonsLangVersion>3.12.0</commonsLangVersion>
|
||||
<junitVersion>5.8.1</junitVersion>
|
||||
<mockitoVersion>3.2.0</mockitoVersion>
|
||||
|
|
Loading…
Reference in New Issue