继承

继承是为了消除重复,如果将dao、service、web分开创建独立的工程则每个工程的pom.xml文件中的内容存在重复,比如:设置编译版本、锁定spring的版本的等,可以将这些重复的配置提取出来在父工程的pom.xml中定义

聚合

项目开发通常是分组分模块开发,每个模块开发完成要运行整个工程需要将每个模块聚合在一起运行,比如:dao、service、web三个工程最终会打一个独立的war运行。

同级模块添加依赖

<dependency>
      <groupId>wang.ismy</groupId>
      <artifactId>service</artifactId>
      <version>1.0-SNAPSHOT</version>
      <scope>compile</scope>
</dependency>

私服

docker pull sonatype/nexus3
docker run -d -p 8081:8081 --name nexus sonatype/nexus3

上传

    <distributionManagement>
        <repository>
            <id>releases</id>
            <url>http://192.168.1.102:8081/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <url>http://192.168.1.102:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
        <server>
       <id>snapshots</id>
       <username>admin</username>
       <password>admin</password>
    </server>

下载

    <repositories>
        <repository>
            <id>nexus</id>
            <name>local private nexus</name>
            <url>http://192.168.1.102:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

安装第三方jar到本地

mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dfile= fastjson-1.1.37.jar -Dpackaging=jar

上传jar到私服

mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dpackaging=jar -Dfile=fastjson-1.1.37.jar -Durl=http://localhost:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty