Eclipse创建Maven多模块工程

1. File-->New-->Maven Project,创建一个简单工程,并自定义保存路径。

 

2. 点击Next,指定组织ID,项目ID,项目版本,包类型,最后点击Finish。

 

3. 在Eclispe工作空间找到刚才新建的项目,把其下的src目录删除。

4. 右键该项目,New-->Project-->Maven Module

 

5. 出现下图的对话框,输入模块名称

 

6. 为新建模块指定原型,如下图

 

7. 点击下一步进入下图所示的概览对话框,确认无问题,可点击Finish。

8. 依次创建其他的maven模块,mavenproject-dal模块,mavenproject-service模块。

9. 创建web模块,过程大同小异,只不过在第5步的时候指定的原型不同,见下图。

 

10. 打开mavenproject-web模块,在src/main文件夹下新建java文件夹。

11. 打开web.xml文件,将内容修改如下。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    metadata-complete="true" version="3.0">
    <display-name>mavenproject-web</display-name>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

12. 将mavenproject-web项目部署到tomcat,并访问http://localhost:8080/mavenproject-web,即可见到主页呈现的内容。

 


 

注意事项:新建maven项目,eclipse会默认web版本为2.3,jdk为1.5,这跟我们的要求不符,因此我们需要自行配置web和jdk的版本。

1. 右键项目,Maven-->Update Project时,项目引用的jre版本会变为1.5,这可能导致编译出错。

解决办法:

(1)(推荐)在每个模块的pom.xml文件里的<project>标签之间加入以下代码,指定jre版本为1.7,这样无论项目在你的Eclipse还是别人的Eclipse里面都是采用jre1.7版本编译

     <build>
         <plugins>
             <!-- define the project compile level -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <configuration>
                     <source>1.7</source>
                     <target>1.7</target>
                 </configuration>
             </plugin>
         </plugins>
     </build>

(2)若需要Eclipse在新建工程时,默认采用jre1.7版本,则需要打开maven的conf文件夹下的settings.xml文件

在<settings>标签之间加入以下代码,并保存settings.xml

<profiles>    
    <profile>  
    <id>jdk-1.7</id>  
    <activation>  
        <activeByDefault>true</activeByDefault>  
        <jdk>1.7</jdk>  
    </activation>  
    <properties>  
        <maven.compiler.source>1.7</maven.compiler.source>  
        <maven.compiler.target>1.7</maven.compiler.target>  
        <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>  
    </properties>  
    </profile>
</profiles>

然后到eclispe-->Window-->Preferences-->Maven-->User Settings,在右侧点击Update Settings。

 

2. 修改web的版本,右键web项目-->Properties-->Project Facets,修改Dynamic Web Module的版本为3.0,提示出错。

解决办法:

(1)打开Window-->Show View-->Navigator视窗

(2)选择下图文件并打开编辑

(3)将jst.web由2.3改为3.0,并保存

(4)右键web项目-->Maven-->Update Project,发现不再报错,接着右键web项目-->Properties-->Project Facets查看web的版本已经为3.0。

 

 


13.  建立各模块的依赖关系

(1)ssm的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>org.llj</groupId>
  <artifactId>ssm</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  <modules>
    <module>ssm-commons</module>
    <module>ssm-dal</module>
    <module>ssm-service</module>
    <module>ssm-web</module>
  </modules>
  
  <properties>
    <encoding>UTF-8</encoding>
    <project.build.sourceEncoding>${encoding}</project.build.sourceEncoding>
        <project.reporting.outputEncoding>${encoding}</project.reporting.outputEncoding>
        <project.resources.sourceEncoding>${encoding}</project.resources.sourceEncoding>
        <archetype.encoding>${encoding}</archetype.encoding>
        
        <java.version>1.7</java.version>
  </properties>
  <dependencyManagement>
     <dependencies>
        <dependency>
           <groupId>org.llj</groupId>
           <artifactId>ssm-commons</artifactId>
           <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
           <groupId>org.llj</groupId>
           <artifactId>ssm-dal</artifactId>
           <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
           <groupId>org.llj</groupId>
           <artifactId>ssm-service</artifactId>
           <version>0.0.1-SNAPSHOT</version>
        </dependency>
     </dependencies>
  </dependencyManagement>
  <build>
        <finalName>ssm</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <tagBase>${project.artifactId}-${project.version}</tagBase>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <scmCommentPrefix />
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
ssm/pom.xml

(2)ssm-commons的pom.xml如下

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.llj</groupId>
    <artifactId>ssm</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>ssm-commons</artifactId>
  <name>ssm-commons</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
         <plugins>
             <!-- define the project compile level -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <configuration>
                     <source>${java.version}</source>
                     <target>${java.version}</target>
                 </configuration>
             </plugin>
         </plugins>
     </build>
  
</project>
ssm-commons/pom.xml

(3)ssm-dal的pom.xml如下

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.llj</groupId>
    <artifactId>ssm</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>ssm-dal</artifactId>
  <name>ssm-dal</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.llj</groupId>
      <artifactId>ssm-commons</artifactId>
    </dependency>
  </dependencies>
  <build>
         <plugins>
             <!-- define the project compile level -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <configuration>
                     <source>${java.version}</source>
                     <target>${java.version}</target>
                 </configuration>
             </plugin>
         </plugins>
     </build>
</project>
ssm-dal/pom.xml

(4)ssm-service的pom.xml如下

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.llj</groupId>
    <artifactId>ssm</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>ssm-service</artifactId>
  <name>ssm-service</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.llj</groupId>
      <artifactId>ssm-dal</artifactId>
    </dependency>
  </dependencies>
  <build>
         <plugins>
             <!-- define the project compile level -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <configuration>
                     <source>${java.version}</source>
                     <target>${java.version}</target>
                 </configuration>
             </plugin>
         </plugins>
     </build>
</project>
ssm-service/pom.xml

(5)ssm-web的pom.xml如下

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.llj</groupId>
    <artifactId>ssm</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>ssm-web</artifactId>
  <packaging>war</packaging>
  <name>ssm-web Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.llj</groupId>
      <artifactId>ssm-service</artifactId>
    </dependency>
  </dependencies>
  <build>
    <finalName>ssm-web</finalName>
    
         <plugins>
             <!-- define the project compile level -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <configuration>
                     <source>${java.version}</source>
                     <target>${java.version}</target>
                 </configuration>
             </plugin>
         </plugins>
     
  </build>
</project>
ssm-web/pom.xml

14. 更新整个maven工程,右键父工程ssm-->Maven-->Update Project。

15. 打包和发布

(1)右键父工程名ssm-->Run As-->Maven Install,控制台看到下图即为成功

(2)打包web子工程,右键ssm-web -->Run As -->Maven Build -->Goals:clean package -->Run

控制台看到下图,则表示打包成功

(3)右键父工程名ssm-->Refresh,到web子工程的target目录下可以看到ssm-web.war

(4)将ssm-web.war复制到tomcat的webapps目录下,启动tomcat,浏览器访问http://localost:8080/ssm-web,可以看到web的主页呈现的内容。

(5)查看webapps目录下的文件,可以发现多了一个ssm-web的文件夹,这是tomcat自动解压ssm-web.war后生成的。

(6)进入ssm-web/WEB-INF/lib目录,可以见到ssm-web引用的 jar 包。



至此,Eclipse创建maven多模块工程结束!

转载于:https://www.cnblogs.com/lilinjian/p/8946898.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值