1

我需要跑步

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 运行相同的命令。

4

3 回答 3

1

将您的项目更改<packaging>war并使用maven-war-plugin. Maven 对不同的打包类型有不同的插件。maven-assembly-plugin如果您计划从一个项目中生成多个工件,您也可以尝试使用.

于 2013-09-10T09:48:21.950 回答
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 目标。

您还可以实现一个简单的 Maven 插件(Mojo 类),从您的 jar 中调用所需的方法。

于 2013-09-10T09:35:05.387 回答
0

我得到了解决方案:

  1. 不要\<packaging\>\</packaging\>为此 pom 指定。

  2. 添加以下代码并删除任何 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>
    
于 2013-09-10T10:21:49.093 回答