zoukankan      html  css  js  c++  java
  • 新建标准mavenWeb工程以及Maven的web应用标准目录结构建议

    到现在为止,使用Maven结构的Web工程越来越多,因此在此介绍一下通过Maven来构建项目的相关知识。

        文档主要分为两部分:

          1.如何通过maven来构建多模块的web项目

          2.标准的maven项目的目录结构:(springMVC+mybatis).

      1.如何通过maven来构建多模块的web项目

          1)创建父工程

    de5a3107-01b2-4d6d-af4a-318cc75d0e3b

    1afbd985-f60f-43c5-bebf-4f5bcd9017b5

    606890bf-a596-40af-8187-fe0de2a7a79e

    创建完成之后结构如下:

    3ed95e19-506c-471c-a6e8-0c18eb8c6382

    修改POM.xml文件,内容如下:

    <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>cn.telchina</groupId>
        <artifactId>mavenweb</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>pom</packaging>
        <name>mavenweb</name>
        <description>mavenweb</description>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <product.name>实验平台</product.name>
            <product.version>${project.version}</product.version>
            <product.run.port>8080</product.run.port>
            <product.run.path>/mavenweb</product.run.path>
            <spring.version>3.1.2.RELEASE</spring.version>
            <junit.version>4.8</junit.version>
            <mybatis.version>3.1.1</mybatis.version>
            <log4j.version>1.2.16</log4j.version>
        </properties>
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-webmvc</artifactId>
                    <version>${spring.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-tx</artifactId>
                    <version>${spring.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-jdbc</artifactId>
                    <version>${spring.version}</version>
                </dependency>
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>${junit.version}</version>
                </dependency>
    
                <dependency>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                    <version>${mybatis.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis-spring</artifactId>
                    <version>1.2.2</version>
                </dependency>
                <dependency>
                    <groupId>cglib</groupId>
                    <artifactId>cglib-nodep</artifactId>
                    <version>2.1_3</version>
                </dependency>
                <dependency>
                    <groupId>com.oracle</groupId>
                    <artifactId>ojdbc6</artifactId>
                    <version>11.2.0.3</version>
                </dependency>
                <dependency>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                    <version>${log4j.version}</version>
                </dependency>
                <dependency>
                    <groupId>c3p0</groupId>
                    <artifactId>c3p0</artifactId>
                    <version>0.9.1.2</version>
                </dependency>
    
                <dependency>
                    <groupId>org.apache.tomcat</groupId>
                    <artifactId>servlet-api</artifactId>
                    <version>6.0.35</version>
                    <scope>provided</scope>
                </dependency>
                <dependency>
                    <groupId>commons-beanutils</groupId>
                    <artifactId>commons-beanutils</artifactId>
                    <version>1.7.0</version>
                </dependency>
                <dependency>
                    <groupId>commons-collections</groupId>
                    <artifactId>commons-collections</artifactId>
                    <version>3.2.1</version>
                </dependency>
                <dependency>
                    <groupId>commons-fileupload</groupId>
                    <artifactId>commons-fileupload</artifactId>
                    <version>1.2.2</version>
                </dependency>
                <dependency>
                    <groupId>commons-io</groupId>
                    <artifactId>commons-io</artifactId>
                    <version>2.0.1</version>
                </dependency>
                <dependency>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                    <version>1.1.1</version>
                </dependency>
                <dependency>
                    <groupId>commons-lang</groupId>
                    <artifactId>commons-lang</artifactId>
                    <version>2.5</version>
                </dependency>
                 <dependency>
                    <groupId>com.alibaba</groupId>
                    <artifactId>fastjson</artifactId>
                    <version>1.1.26</version>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>2.6</version>
                        <configuration>
                            <overwrite>true</overwrite>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty-maven-plugin</artifactId>
                        <version>8.1.15.v20140411</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>2.3.2</version>
                        <configuration>
                            <encoding>utf-8</encoding>
                            <source>1.6</source>
                            <target>1.6</target>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.16</version>
                        <configuration>
                            <argLine>-Dfile.encoding=UTF-8</argLine>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>2.2</version>
                        <configuration>
                            <warName>mavenweb</warName>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.tomcat.maven</groupId>
                        <artifactId>tomcat7-maven-plugin</artifactId>
                        <version>2.1</version>
                        <configuration>
                            <port>${product.run.port}</port>
                            <path>${product.run.path}</path>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>com.github.goldin</groupId>
                        <artifactId>copy-maven-plugin</artifactId>
                        <version>0.2.5</version>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
       </project>
    删除无用的配置文件后,文件结构如下:

    1ea71def-01c3-4425-9705-e21405414727

          2)创建Service模块

    69232b41-0cbc-40fd-b175-110ad5013592

    683cf63d-0ea1-4c50-abbf-e8f9b8ca2f24

    5124ab67-b5cd-4a59-9771-c892bfac50f1

    修改POM.xml

    <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>
        <parent>
            <groupId>cn.telchina</groupId>
            <artifactId>mavenweb</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </parent>
        <artifactId>mavenweb-service</artifactId>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
            </dependency>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
            </dependency>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
            </dependency>
            <dependency>
                <groupId>cglib</groupId>
                <artifactId>cglib-nodep</artifactId>
            </dependency>
            <dependency>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc6</artifactId>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
            </dependency>
            <dependency>
                <groupId>c3p0</groupId>
                <artifactId>c3p0</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>servlet-api</artifactId>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
            </dependency>
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
            </dependency>
        </dependencies>
    </project>

         3)创建WEB模块

    4682150f-2fc0-401a-b14f-961e3d3cfd50

    ee9eaa14-389a-4438-b73c-4a39c5c719fd

    fa154fac-7c72-4d99-978e-b97d58147094

    修改POM文件,内容如下:

    <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>
        <parent>
            <groupId>cn.telchina</groupId>
            <artifactId>mavenweb</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </parent>
        <artifactId>mavenweb-webapp</artifactId>
        <packaging>war</packaging>
        <dependencies>
            <dependency>
                <groupId>cn.telchina</groupId>
                <artifactId>mavenweb-service</artifactId>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    </project>

    4)在父工程的POM文件中引入新创建的模块:

    c8ef26a6-e0f7-4e97-bc67-89eb06617994

    fabc72e8-180d-4f63-b05a-48e2b04f40e3

    d98e01a1-185b-449c-a917-2463d8396519

    f1e34ec1-bb82-42b1-9520-be290d71d1fe

    完成后,pom文件变成:

    <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>cn.telchina</groupId>
        <artifactId>mavenweb</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>pom</packaging>
        <name>mavenweb</name>
        <description>mavenweb</description>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <product.name>实验平台</product.name>
            <product.version>${project.version}</product.version>
            <product.run.port>8080</product.run.port>
            <product.run.path>/mavenweb</product.run.path>
            <spring.version>3.1.2.RELEASE</spring.version>
            <junit.version>4.8</junit.version>
            <mybatis.version>3.1.1</mybatis.version>
            <log4j.version>1.2.16</log4j.version>
        </properties>
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-webmvc</artifactId>
                    <version>${spring.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-tx</artifactId>
                    <version>${spring.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-jdbc</artifactId>
                    <version>${spring.version}</version>
                </dependency>
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>${junit.version}</version>
                </dependency>
    
                <dependency>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                    <version>${mybatis.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis-spring</artifactId>
                    <version>1.2.2</version>
                </dependency>
                <dependency>
                    <groupId>cglib</groupId>
                    <artifactId>cglib-nodep</artifactId>
                    <version>2.1_3</version>
                </dependency>
                <dependency>
                    <groupId>com.oracle</groupId>
                    <artifactId>ojdbc6</artifactId>
                    <version>11.2.0.3</version>
                </dependency>
                <dependency>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                    <version>${log4j.version}</version>
                </dependency>
                <dependency>
                    <groupId>c3p0</groupId>
                    <artifactId>c3p0</artifactId>
                    <version>0.9.1.2</version>
                </dependency>
    
                <dependency>
                    <groupId>org.apache.tomcat</groupId>
                    <artifactId>servlet-api</artifactId>
                    <version>6.0.35</version>
                    <scope>provided</scope>
                </dependency>
                <dependency>
                    <groupId>commons-beanutils</groupId>
                    <artifactId>commons-beanutils</artifactId>
                    <version>1.7.0</version>
                </dependency>
                <dependency>
                    <groupId>commons-collections</groupId>
                    <artifactId>commons-collections</artifactId>
                    <version>3.2.1</version>
                </dependency>
                <dependency>
                    <groupId>commons-fileupload</groupId>
                    <artifactId>commons-fileupload</artifactId>
                    <version>1.2.2</version>
                </dependency>
                <dependency>
                    <groupId>commons-io</groupId>
                    <artifactId>commons-io</artifactId>
                    <version>2.0.1</version>
                </dependency>
                <dependency>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                    <version>1.1.1</version>
                </dependency>
                <dependency>
                    <groupId>commons-lang</groupId>
                    <artifactId>commons-lang</artifactId>
                    <version>2.5</version>
                </dependency>
                <dependency>
                    <groupId>cn.telchina</groupId>
                    <artifactId>mavenweb-service</artifactId>
                    <version>0.0.1-SNAPSHOT</version>
                </dependency>
                <dependency>
                    <groupId>cn.telchina</groupId>
                    <artifactId>mavenweb-webapp</artifactId>
                    <version>0.0.1-SNAPSHOT</version>
                    <type>war</type>
                </dependency>
                <dependency>
                    <groupId>com.alibaba</groupId>
                    <artifactId>fastjson</artifactId>
                    <version>1.1.26</version>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>2.6</version>
                        <configuration>
                            <overwrite>true</overwrite>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty-maven-plugin</artifactId>
                        <version>8.1.15.v20140411</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>2.3.2</version>
                        <configuration>
                            <encoding>utf-8</encoding>
                            <source>1.6</source>
                            <target>1.6</target>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.16</version>
                        <configuration>
                            <argLine>-Dfile.encoding=UTF-8</argLine>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>2.2</version>
                        <configuration>
                            <warName>mavenweb</warName>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.tomcat.maven</groupId>
                        <artifactId>tomcat7-maven-plugin</artifactId>
                        <version>2.1</version>
                        <configuration>
                            <port>${product.run.port}</port>
                            <path>${product.run.path}</path>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>com.github.goldin</groupId>
                        <artifactId>copy-maven-plugin</artifactId>
                        <version>0.2.5</version>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
        <modules>
            <module>mavenweb-service</module>
            <module>mavenweb-webapp</module>
        </modules>
    </project>

    5)加入源码和配置文件,系统创建完成。

    2.标准的maven项目的目录结构

    目录结构推荐:

    image

    image

    image

     

    说明:

       1.后台服务模块相关的代码放到Service模块中,所有前台代码放到Webapp模块中。

       2.所有的配置文件放到Service模块的resource模块中。



    作者:sdjnzqr
    出处:http://www.cnblogs.com/sdjnzqr/
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
  • 相关阅读:
    [数据备档]源码用的百家姓的数组,实用
    Linq to Sql 与NHibernate数据库操作性能比较研究 测试程序源码
    【技术备档】在WinCE5.0下实现透明背景按钮(.net C#)
    【技术备档】windows平台下快速配置MySQLPython的方法
    反思一下,我为什么需要这些技术?
    一些软件或组件
    Hibernate 与 Spring 多数据源的配置
    asp.net web路径总结
    Ubuntu 中文编码设置
    根据枚举动态扩充datatable列
  • 原文地址:https://www.cnblogs.com/sdjnzqr/p/3819824.html
Copyright © 2011-2022 走看看