Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 函数参数名中的点_Maven_Powershell_Maven 3_Powershell 3.0 - Fatal编程技术网

Maven 函数参数名中的点

Maven 函数参数名中的点,maven,powershell,maven-3,powershell-3.0,Maven,Powershell,Maven 3,Powershell 3.0,powershell中是否可以使用带点的参数名?显而易见的方法-请参见Dmaven.failsafe.debug失败: function mvn-failsafe-debug { param ( [string] $Dmaven.failsafe.debug="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_shmem,server=y,address=Maven,suspend=n", [param

powershell中是否可以使用带点的参数名?显而易见的方法-请参见
Dmaven.failsafe.debug
失败:

function mvn-failsafe-debug {
  param (
    [string] $Dmaven.failsafe.debug="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_shmem,server=y,address=Maven,suspend=n",
    [parameter(Position=0, ValueFromRemainingArguments=$true)]
    $args
  )
  & "$env:M2_HOME\bin\mvn.bat" $args
}

您应该能够使用的符号是大括号

${Dmaven.failsafe.debug}
当名称包含特殊字符时使用此选项。输入通常是定义变量的首选方法

。 第2.3.4节参数说明

因此,点实际上不是有效的参数名称字符

有趣的是,可以用点定义参数,如
${…}

param (
    [string] ${Dmaven.failsafe.debug}
)
PowerShell允许进行上述操作。但在调用命令时很难指定这样的参数名


一些实验:

function Test-ParameterWithDots {
    param(
        [string]${Parameter.With.Dots}
    )
    "Parameter : ${Parameter.With.Dots}"
}

# OK
Test-ParameterWithDots value1

# not OK
Test-ParameterWithDots -Parameter.With.Dots value2

# workaround with splatting
$params = @{ 'Parameter.With.Dots' = 'value3' }
Test-ParameterWithDots @params
输出:

Parameter : value1
Parameter : .With.Dots
Parameter : value3

因此,通过spatting,我们仍然可以指定这样一个参数名。

现在没有时间去看,但还有另一个问题,我认为讨论的结果是,在某些情况下,powershell解析器很容易对此感到困惑。是的,我将其用作解决方法
函数mvn failsafe debug{param([string]$Dmaven_failsafe_debug=“-Xdebug-Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport=dt_shmem,server=y,address=Maven,suspend=n“,[parameter(Position=0,ValueFromRemainingArguments=$true)]$resists)&“$env:M2_HOME\bin\mvn.bat”`-Dmaven.failsafe.debug=$Dmaven\u failsafe}
Parameter : value1
Parameter : .With.Dots
Parameter : value3