2013-11-21 184 views
0

我目前正在使用maven處理一個問題。我嘗試使用maven構建軟件時更新文件。出於某種原因,我必須使用powershell腳本,並在使用mvn構建時運行它。這裏是我的代碼:如何在maven中運行powershell腳本

<exec executable="powershell.exe" 
         spawn="true"> 
        <arg value="/c"/> 
        <arg value="myReplace.ps1"/> 
        <arg value="../../the/path/to/the/directory/" /> 
        <arg value ="filename"/> 
        <arg value="value1" /> 
        <arg value="value2" /> 
        <arg value="value3" /> 
      </exec> 

它沒有按預期工作,有人可以幫助我嗎?

+2

請給我們錯誤信息 –

+0

這看起來很像Ant。你說過(並標記Maven)。那個怎麼樣?你不想只使用[Exec Maven Plugin](http://mojo.codehaus.org/exec-maven-plugin/usage.html)? –

回答

0

這條消息可能來自一段時間,但我在最後幾天經歷了這個練習。關鍵是按照說明使用exec插件。以下是項目的pom.xml中的示例:

以下代碼在PowerShell模塊腳本上啓動代碼簽名。請注意,命令字符串必須從命令行調用PowerShell函數,其中&未被Maven正確消解。逃避它的伎倆。對於更復雜的操作,請調用PS腳本。

... 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.3.2</version> 
      <executions> 
       <execution> 
        <id>scripts-package</id> 
        <goals> 
         <goal>exec</goal> 
        </goals> 
        <phase>prepare-package</phase> 
        <configuration> 
       <!-- optional --> 
        <workingDirectory>/Temp</workingDirectory> 
        <arguments> 
         <argument>-command</argument> 
         <argument>"&amp; { Set-AuthenticodeSignature '${project.build.directory}/Logging_Functions/*.psm1' @(Get-ChildItem ${project.build.certificate.path} -codesigning)[0]"}</argument> 
        </arguments> 
        </configuration> 
       </execution>