java tomcat应用程序的Maven项目配置

时间:2015-02-02 12:29:08

标签: java maven maven-2

我在使用maven设置项目时遇到问题。我总是得到那个项目必须是pom或者它缺少一个jar包。所以这就是我想要做的事情:

  1. 我有一个主要项目,其中包含web的web-inf文件夹,如果我将其导出为war,则可以在tomcat上运行:

    <groupId>com.example</groupId>
    <artifactId>main</artifactId>
    <packaging>jar</packaging>
    <version>0.0.1-SNAPSHOT</version>
    
  2. 我有一个具有主要依赖关系的模块项目,因此我可以使用主项目中的所有库,但是将用作主项目的扩展。我计划有这样的多个模块:

    <groupId>com.example.modules</groupId>
    <artifactId>module-blogging</artifactId>
    <packaging>pom</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>module-blogging</name>
    
    <parent>
        <groupId>com.example</groupId>
        <artifactId>main</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    
  3. 第三个项目我计划建立一个可部署的项目,该项目只包含主要项目,只有我想在war文件中部署的模块。

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    
  4. 这个东西甚至可以和maven一起使用吗?因为我总是得到我的项目缺少一些jar依赖项,或者聚合项目不能进行war包装。

1 个答案:

答案 0 :(得分:1)

我有大致相同的情况3 modules其中一个是deploy-able 并且所有3个模块都包含在一个项目中

所以我用4 .pom个文件配置它,如下所示

main-project.pom

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.#####</groupId>
    <artifactId>#########</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>########</name>



<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.6</maven.compiler.source>
        <maven.compiler.target>1.6</maven.compiler.target>
        <maven.test.skip>true</maven.test.skip>         
        <###########.version>0.0.1-SNAPSHOT</##########.version>
    </properties>



<modules>
        <module>#########-web</module>
        <module>#########-commons</module>
        <module>#########-services</module>
    </modules>

</project>

公地module.pom

<project>
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <artifactId>############</artifactId>
        <groupId>com.#####</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <artifactId>###########-commons</artifactId>
    <packaging>jar</packaging>


    <dependencies>

ur own depends

    </dependencies>
</project>

服务-module.pom

<project>
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <artifactId>#######</artifactId>
        <groupId>com.########</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <dependencies>
ur depends
    </dependencies>

    <artifactId>########-services</artifactId>
    <packaging>jar</packaging>
</project>

网络module.pom

<project>
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.#########</groupId>
        <artifactId>##########</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>#########-web</artifactId>
    <packaging>war</packaging>
    <name>############</name>
    <url>http://##########.com</url>

    <dependencies>
UR DEPENDS
    </dependencies>

    <build>
        <finalName>##############</finalName>
        <outputDirectory>target/${project.artifactId}-${project.version}/WEB-INF/classes</outputDirectory>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ear-plugin</artifactId>
                <version>2.8</version>
                <configuration>
                    <version>5</version>
                    <defaultLibBundleDir>lib</defaultLibBundleDir>
                    <unpackTypes>war</unpackTypes>
                </configuration>
            </plugin>

            <!-- configure war plugin to skip webxml -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>

            <!-- jetty plugin -->
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>8.1.15.v20140411</version>
            </plugin>
        </plugins>

    </build>

更新

您的项目结构将是这样的:

main-project
    |
    ----commons-module
    |
    ----services-module
    | 
    ----web-module

构建和部署项目

我使用jetty进行部署

你可以在web-module pom中看到它的插件

在您的项目根运行该命令以构建项目并生成war文件mvn clean install

然后将目录更改为Web模块并运行以下命令以部署war文件mvn jetty:run

我希望它有用;