我需要跑步
jar -cvf myapp.war *
使用 Maven 构建命令,我有一个项目“myapp”。目前我有一些shell脚本来构建war文件。
cd /something/myapp
jar -cvf myapp.war *
它生成 myapp.war 文件,不关心 web app 文件夹结构(它已经在 web app 文件夹结构中)。
我想使用 Maven pom 而不是 shell 脚本,但我想使用 Maven 运行相同的命令。
我需要跑步
jar -cvf myapp.war *
使用 Maven 构建命令,我有一个项目“myapp”。目前我有一些shell脚本来构建war文件。
cd /something/myapp
jar -cvf myapp.war *
它生成 myapp.war 文件,不关心 web app 文件夹结构(它已经在 web app 文件夹结构中)。
我想使用 Maven pom 而不是 shell 脚本,但我想使用 Maven 运行相同的命令。
将您的项目更改<packaging>
为war
并使用maven-war-plugin
. Maven 对不同的打包类型有不同的插件。maven-assembly-plugin
如果您计划从一个项目中生成多个工件,您也可以尝试使用.
你应该看看这个 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 目标。
您还可以实现一个简单的 Maven 插件(Mojo 类),从您的 jar 中调用所需的方法。
我得到了解决方案:
不要\<packaging\>\</packaging\>
为此 pom 指定。
添加以下代码并删除任何 maven-war 或 maven-jar 插件(如果已在<plugins>
.
<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>