我需要运行
jar -cvf myapp.war *
使用Maven构建的命令,我有一个项目'myapp'。目前我有一些shell脚本来构建war文件。
cd /something/myapp
jar -cvf myapp.war *
它生成myapp.war文件,不关心Web应用程序文件夹结构(它已经在Web应用程序文件夹结构中)。
我想用Maven pom而不是shell脚本,但我想用Maven运行相同的命令。
答案 0 :(得分:1)
你应该看看这个maven插件:
http://mojo.codehaus.org/exec-maven-plugin/usage.html
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
它允许您在构建生命周期中执行系统和Java程序。
根据您的需要,您可以使用exec:java goal。
您还可以实现一个简单的Maven插件(Mojo类),从您的jar中调用所需的方法。
答案 1 :(得分:1)
将项目的<packaging>
更改为war
并使用maven-war-plugin
。 Maven为不同的包装类型提供不同的插件。如果您计划从一个项目中生成多个工件,也可以尝试maven-assembly-plugin
。
答案 2 :(得分:0)
我得到了解决方案:
请勿为此pom指定\<packaging\>\</packaging\>
。
如果已在<plugins>
中定义,请添加以下代码并删除所有maven-war或maven-jar插件。
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>export_objects</id>
<phase>install</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>jar</executable>
<commandlineArgs> -cvf myapp.war *</commandlineArgs>
</configuration>
</plugin>
</plugins>
</build>