我在Mac 10.6.6上使用Maven 3.0.3。打包我的战争后,我想执行一个解压缩命令(我想这样做,因为我正在使用Grails插件删除爆炸的war目录)。所以我在我的pom.xml中有这个......
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>
<configuration>
<executable>unzip</executable>
<arguments>
<argument>-d target/jx-1.0-SNAPSHOT target/jx-1.0-SNAPSHOT.war</argument>
</arguments>
</configuration>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
</plugin>
但是,当我执行调用插件的命令时,我收到错误...
[INFO] --- exec-maven-plugin:1.1.1:exec (default-cli) @ jx ---
[INFO] UnZip 5.52 of 28 February 2005, by Info-ZIP. Maintained by C. Spieler. Send
[INFO] bug reports using http://www.info-zip.org/zip-bug.html; see README for details.
[INFO]
[INFO] Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
[INFO] Default action is to extract files in list, except those in xlist, to exdir;
[INFO] file[.zip] may be a wildcard. -Z => ZipInfo mode ("unzip -Z" for usage).
[INFO]
[INFO] -p extract files to pipe, no messages -l list files (short format)
[INFO] -f freshen existing files, create none -t test compressed archive data
[INFO] -u update files, create if necessary -z display archive comment
[INFO] -x exclude files that follow (in xlist) -d extract files into exdir
[INFO]
[INFO] modifiers: -q quiet mode (-qq => quieter)
[INFO] -n never overwrite existing files -a auto-convert any text files
[INFO] -o overwrite files WITHOUT prompting -aa treat ALL files as text
[INFO] -j junk paths (do not make directories) -v be verbose/print version info
[INFO] -C match filenames case-insensitively -L make (some) names lowercase
[INFO] -X restore UID/GID info -V retain VMS version numbers
[INFO] -K keep setuid/setgid/tacky permissions -M pipe through "more" pager
[INFO] Examples (see unzip.txt for more info):
[INFO] unzip data1 -x joe => extract all files except joe from zipfile data1.zip
[INFO] unzip -p foo | more => send contents of foo.zip via pipe into program more
[INFO] unzip -fo foo ReadMe => quietly replace existing ReadMe if archive file newer
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
任何想法我做错了什么?谢谢, - 戴夫
答案 0 :(得分:1)
您将多个参数打包到一个<argument>
中。该元素只需要一个参数,例如“-d”或“target / jx-1.0-SNAPSHOT”。您可能需要将其分解,或者您可以尝试使用<commandlineArgs>
。
答案 1 :(得分:1)
瑞安写道,你会想要这个:
<argument>-d</argument>
<argument>target/jx-1.0-SNAPSHOT</argument>
<argument>target/jx-1.0-SNAPSHOT.war</argument>
但是,你也很难编写许多应该使用maven变量实现的东西。所以这是一个更好的版本:
<argument>-d</argument>
<argument>${project.build.directory}/${project.build.finalName}</argument>
<argument>${project.build.directory}/${project.build.finalName}.${project.packaging}</argument>