01软件架构师---------分模块和工程做开发

Posted jim_shen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了01软件架构师---------分模块和工程做开发相关的知识,希望对你有一定的参考价值。

 

我们采用maven的形式来管理项目。

先建立一个父的maven工程:

下一步:

 

 下一步:

然后在生成的

pom.xml中修改:

表示这是最顶级的父级maven工程。

 

 

然后在这个最顶级的父级maven工程下新建子工程:

右键单击

接下来:

接下来;

输入artchitecture1.建立子maven的web工程。同理;我们建立以下几个工程:

这里解释一下:

artchitecture1是maven的总工程。

下面的都是子工程。

用maven作项目管理有两种思路:

1:一个模块一个maven工程:比如这里的customermgr就是包括了前后端的maven工程。

2:一个模块分为两个maven工程:比如这里的goods(货物)模块:goodsmgr是专门做后台的。goodsmgrweb是专门做前台的。

然后可以把每个工程分给不同的团队来做,

 

 

 

我们知道customermgr和goodssmgrweb都是maven web工程,那么我们就把他们整合到一个war包。在artchitctureweb1中。所以修改artchitctureweb1的pom.xml:如下:

artchitctureweb1的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>com.sishuok</groupId>
        <artifactId>artchitecture1</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <groupId>com.sishuok</groupId>
    <artifactId>artchitecture1web</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>artchitecture1web 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>com.sishuok</groupId>
             <artifactId>customermgr</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <type>war</type>
        </dependency>



    <dependency>
               <groupId>com.sishuok</groupId>
                <artifactId>goodsmgrweb</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <type>war</type>
        </dependency>




    </dependencies>
    
    
    
    <build>
        <finalName>artchitecture1web</finalName>
        <plugins>
               <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <!-- 配置好要合并的war的工程 -->
                <configuration>
                    <overlays>
                    <!-- 从custom中提取 -->
                        <overlay>
                          <groupId>com.sishuok</groupId>
                        <artifactId>customermgr</artifactId>
                            
                        </overlay>
                        <!-- 从goodsweb中提取 -->
                            <overlay>
                               <groupId>com.sishuok</groupId>
                               <artifactId>goodsmgrweb</artifactId>
                        </overlay>
                    
                    </overlays>
                </configuration>
            </plugin>
                </plugins>
    </build>
</project>

 

打红色的

  <groupId>com.sishuok</groupId>
  <artifactId>customermgr</artifactId>
都是可以从customermgr中的pom.xml和goodsmgrweb中的pom.xml中复制过来的。

每个工程的pom.xml如下:

customermgr中的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>com.sishuok</groupId>
    <artifactId>artchitecture1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <groupId>com.sishuok</groupId>
  <artifactId>customermgr</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>customermgr 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>
  </dependencies>
  <build>
    <finalName>customermgr</finalName>
  </build>
</project>
goodsmgrweb中的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>com.sishuok</groupId>
    <artifactId>artchitecture1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <groupId>com.sishuok</groupId>
  <artifactId>goodsmgrweb</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>goodsmgrweb 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>
  </dependencies>
  <build>
    <finalName>goodsmgrweb</finalName>
  </build>
</project>

 

 

 

测试:

好,我们现在把这些工程都打成war包来试试 看能不能正常运行:

单击右键:选择 Run as->install maven

 

然后在

 

 

 

 

 上面生成了三个war包。其中artchitecture1web.war就是总的war包。

以上是关于01软件架构师---------分模块和工程做开发的主要内容,如果未能解决你的问题,请参考以下文章

java高级软件架构师实战培训阶段一

私塾在线java高级软件架构师实战培训阶段二

私塾在线java高级软件架构师实战培训阶段二

私塾在线java高级软件架构师实战培训阶段一

私塾在线JAVA高级软件架构师实战培训阶段一

怎样成长为优秀的软件架构师?