使用maven jetty插件更改生成的战争名称

时间:2013-04-03 19:29:28

标签: struts2 jetty maven-3 pom.xml maven-jetty-plugin

我正在使用maven Struts2空白工件来创建我的Web应用程序。这是我的pom.xml: -

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.website.my</groupId>
<artifactId>MyArtifact</artifactId>
<version>3</version>
<packaging>war</packaging>
<name>My Artifact</name>

<properties>
    <struts2.version>2.3.12</struts2.version>
</properties>

<dependencies>

    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>${struts2.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-config-browser-plugin</artifactId>
        <version>${struts2.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-junit-plugin</artifactId>
        <version>${struts2.version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.5</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.4</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>8.1.7.v20120910</version>
            <configuration>
                 <war>C:\Users\pranay\Documents\GitHub\MyArtifact\target\myWeb.war</war>                    
                <stopKey>CTRL+C</stopKey>
                <stopPort>8999</stopPort>
                <systemProperties>
                    <systemProperty>
                        <name>log4j.configuration</name>
                        <value>/Users/lukaszlenart/Projects/Apache/STRUTS_2_3_12/target/checkout/archetypes/struts2-archetype-blank/src/main/resources/log4j.properties</value>
                    </systemProperty>
                    <systemProperty>
                        <name>slf4j</name>
                        <value>false</value>
                    </systemProperty>
                </systemProperties>
                <scanIntervalSeconds>10</scanIntervalSeconds>
                <webAppSourceDirectory>/Users/lukaszlenart/Projects/Apache/STRUTS_2_3_12/target/checkout/archetypes/struts2-archetype-blank/src/main/webapp/</webAppSourceDirectory>
               <webApp>
                    <contextPath>/MyArtifact</contextPath>
                    <descriptor>C:\Users\Pranay\Documents\GitHub\MyArtifact\src\main\webapp\WEB-INF</descriptor>
                </webApp>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                    <version>1.2.17</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

上面pom.xml使用jetty服务器创建war文件。所以当我运行mvn jetty:war-run然后它创建名为MyArtifact-3.war(artifactId-version)的war文件,但是我想要我的war文件名成为myWeb.war。我在pom.xml的配置中使用 war 标记来指定我想要的战争名称(根据此链接http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#running-assembled-webapp-as-war)。但是,它不起作用。请让我知道如何更改生成的war文件名。

1 个答案:

答案 0 :(得分:2)

很简单,只需覆盖<finalName>值。

<project>
  <build>
    <finalName>${project.artifactId}</finalName>
  </build>
</project>