在参数中使用带连字符的Maven exec插件

时间:2018-09-25 07:11:57

标签: maven npm command-line-arguments maven-plugin

我正在尝试从Maven执行npm构建,但是在正确设置命令行参数时遇到问题。

我正在使用以下代码段

class Parent extends React.Component {
  constructor () {
    super()
    this.state = {
      modalContent: '',
      childComponent: ''
    }
    this.getModalContent = this.getModalContent.bind(this)
    this.clickableHandler = this.clickableHandler.bind(this)
  }

  getModalContent () {
    let ModalBody = (
      <div onClick={this.clickableHandler}>
      </div>
    )
    this.setState({modalContent: ModalBody})
  }
  clickableHandler () {
    this.setState({
      childComponent: yourData
    })
  }

  render () {
    return (
      <div>
        <button onClick={this.getModalContent}>Open Modal</button>
        <ModalComponent modalContent={this.state.modalContent}
          childComponent={this.state.childComponent} />
      </div>
    )
  }
}

export default Parent



class ModalComponent extends Component {
      render () {
        return (
          <div>
            {this.props.modalContent}
            <AnotherChild childBody={this.props.childComponent} />
          </div>
        )
      }
    }

    export default ModalComponent

我尝试了<execution> <id>npm run build (compile)</id> <goals> <goal>exec</goal> </goals> <phase>compile</phase> <configuration> <executable>npm</executable> <workingDirectory>${my.source.directory}</workingDirectory> <arguments> <argument>run</argument> <argument>build</argument> <argument>--base-href</argument> <argument>/my-base-href/</argument> </arguments> </configuration> </execution> 的几种变体,但是都没有用。

<argument>
<argument>--base-href</argument>
<argument>/my-base-href/</argument>
or
<argument>-base-href</argument>
<argument>/my-base-href/</argument>
or
<argument>"--base-href"</argument>
<argument>/my-base-href/</argument>
or
<argument><![CDATA[--base-href]]></argument>
<argument>/my-base-href/</argument>
or
<commandlineArgs>run build --base-href /my-base-href/</commandlineArgs> (instead of <arguments>)

leads to
$ npm build "/my-base-href/"
problem: missing '--base-href'
<argument>"--base-href /my-base-href/"</argument>

leads to
$ npm build
problem: missing '--base-href "/my-base-href/"'
<argument>&hyphen;&hyphen;base-href</argument>
<argument>/my-base-href/</argument>

leads to
problem: pom error, could not resolve entity named 'hyphen' (same with &dash;)

这是怎么回事?为什么Maven会吃以<argument>\-\-base-href</argument> <argument>/my-base-href/</argument> leads to $ ng build "\-\-base-href" "/my-base-href/" problem: escape chars ending up in command 开头的参数,我该如何降低它的鲜美程度?

(尝试使用Windows 8.1,maven 3.3.9和3.5.4,exec插件1.3.9和1.6.0)

1 个答案:

答案 0 :(得分:0)

我不确定是否完全一样,但是我需要将--coverage标志传递给测试运行。为此,我最终需要先给--npm run test -- --coverage

        <argument>run</argument>
        <argument>test</argument>
        <argument>--</argument>
        <argument>--coverage</argument>
相关问题