maven实战学习笔记三(聚合与继承)

来源:互联网 发布:淘宝刷单被发现后果 编辑:程序博客网 时间:2024/05/11 06:01
maven聚合与继承
    聚合:一条命令构建多个模块
    <project>
        <modelVersion>4.0.0</modelVersion>
        
        <groupId>com.jubenxu.mvnbook.account</groupId>
        <artifactId>account-aggregator</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <!-- packaging为POM类型 -->
        <packaging>pom</packaging>

        <name>Account Aggregator</name>
        <modules>
            <!-- 每个module的值都是一个当前POM的相对目录 -->
            <module>../account-email</module>
            <module>../account-persist</module>
            <!-- 将父模块加入到聚合中 -->
            <module>../account-parent</module>

        </modules>

    </project>
    <packaging>元素的值为pom,<module>元素指定要聚合模块的POM文件目录。

    继承:简化配置

    父模块
    <project>
        <modelVersion>4.0.0</modelVersion>

        <groupId>com.juvenxu.mvnbook.account</groupId>
        <artifactId>account-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <!-- packaging为POM类型 -->
        <packaging>pom</packaging>


        <name>account-parent</name>

        <properties>
            <springframework.version>2.5.6</springframework.version>
            <junit.version>4.10</junit.version>
        </properties>
        <!-- 依赖管理 不会引入任何依赖 -->
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                    <version>${springframework.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                    <version>${springframework.version}</version>
                </dependency>
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>${junit.version}</version>
                </dependency>
            </dependencies>
        </dependencyManagement>


        <build>
            <!-- 插件管理 不会引入插件 -->
            <pluginManagement>

                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>2.1.1</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>2.3.2</version>
                        <configuration>
                            <source>1.5</source>
                            <target>1.5</target>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>2.5</version>
                        <configuration>
                            <encoding>UTF-8</encoding>
                        </configuration>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    </project>



    子模块
    <project>
        <modelVersion>4.0.0</modelVersion>
        <!-- 指定父模块 -->
        <parent>

            <groupId>com.juvenxu.mvnbook.account</groupId>
            <artifactId>account-parent</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <!-- 父模块POM的相对路径 -->
            <relativePath>../account-parent/pom.xml</relativePath>
        </parent>


        <artifactId>account-email</artifactId>
        <name>account-email</name>

        <properties>
            <project.build.sourceEncoding>
                UTF-8
            </project.build.sourceEncoding>
        </properties>

        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
            </dependency>
        </dependencies>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    </project>

    <parent>的子元素的<relativePath>表示父模块POM的相对路径