maven parent pom

parent pom:全局定义项目模型,子pom继承父pom的配置

主要配置:
           定义项目基本信息:比如license
<licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url> http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

 定义公司统一仓库位置:比如jardeploy位置
    <!-- 发布位置配置 -->
    <distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <name>Internal Release Repository</name>
            <url> http://nexus.xxx.com/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <name>Internal Snapshot Repository</name>
            <url> http://nexus.xxx.com/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>


定义全局插件:比如built方式
<plugins>
            <plugin>
                <inherited>true</inherited>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <optimize>true</optimize>
                    <debug>true</debug>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <!-- 发布源代码jar -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.1.2</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <phase>deploy</phase>
                    </execution>
                </executions>
            </plugin>

            <!-- 发布javadoc -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.8.1</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

统一管理jar版本:子项目在引入jar时不需要加入version 和scope属性:例如
<!--管理jar包版本-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.peaceful</groupId>
                <artifactId>nuggets-peaceful-utils</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

          
定义公司统一jar包依赖:这样所有通过配置parent的项目都可以把下面jar依赖到自己项目里,例如
             <dependencies>
       <!--  JUNIT DEPENDENCY FOR TESTING -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

总结parent pom主要是用来全局描述项目模型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven是一个非常强大的构建工具,它能够为Java项目提供可靠和高效的构建和依赖管理。在Maven中,一个项目的构建和依赖管理可以通过POM(Project Object Model,项目对象模型)文件来实现。POM文件是一个XML格式的文件,用于描述项目的元数据、依赖关系和构建信息等。 Maven中的parent标签是一个非常重要的标签。Parent标签用来引用父级POM文件,从而实现项目的继承和重用。一个Maven项目可以继承父级POM文件中的配置信息和依赖项,从而避免了在各个子模块中重复配置相同的信息。 使用parent标签时,需要在子模块的POM文件中指定父级POM文件的位置和名称,例如: <parent> <groupId>com.example.parent</groupId> <artifactId>parent-project</artifactId> <version>1.0.0</version> </parent> 在上面的例子中,parent标签中指定的groupId、artifactId和version分别表示父级POM文件的groupId、artifactId和版本号。 使用parent标签可以带来多方面的好处,包括: 1. 重用通用的配置信息和依赖项,大大减少了子模块的配置信息。 2. 统一了项目的构建方式和规范,使得各个子模块之间具有更高的一致性。 3. 父级POM文件可以维护项目的版本控制和发布管理,便于管理和协作。 当然,在使用parent标签时还需要注意一些问题: 1. 子模块中可以重写父级POM文件中的配置信息和依赖项,但是应该避免在子模块中添加新的依赖项,否则会破坏项目的一致性。 2. 父级POM文件应该是稳定的,不应频繁修改和更新,否则会给整个项目带来不必要的风险。 3. 谨慎考虑POM文件的层级结构,过多的层级会导致项目结构复杂,增加维护的难度。 总之,使用parent标签是Maven项目中的一个重要组成部分,可以提高项目的可维护性和重用性,建议开发人员在开发过程中多加使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值