• Maven入门


    开发久了,总结一下吧。

    一、Maven配置阿里云源

    阿里云源文档地址:https://developer.aliyun.com/mvn/guide

    编辑 ~/.m2/settings.xml 文件:

    <settings>
        <mirror>
            <id>aliyunmaven</id>
            <mirrorOf>central,jcenter</mirrorOf>
            <name>阿里云公共仓库</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </mirror>
    </settings>
    
    

    这个 url 是 central 仓和 jcenter 仓的聚合仓,所以只需要拦截这两个仓库即可,其它仓库的包还是去 maven 仓库中心下载。

    这是配置全局的拦截器,mirrorOf 是配置拦截哪些镜像。

    二、配置私服地址

    首先配置私服的账号和密码,这个必须在 settings.xml 中配置:

    <settings>
        <servers>
            <server>
                <id>snailwu-demo-releases</id>
                <username>releases-1637456160565</username>
                <password>xxxxxxxxxx</password>
            </server>
            <server>
                <id>snailwu-demo-snapshots</id>
                <username>snapshots-1637456200873</username>
                <password>xxxxxxxxxx</password>
            </server>
        </servers>
    </settings>
    
    

    1、在项目中配置

    <project>
        <!-- 配置拉取-->
        <repositories>
            <!-- 按照顺序进行包的拉取 -->
            <repository>
                <id>aliyun-public</id>
                <name>aliyun-maven</name>
                <url>https://maven.aliyun.com/repository/public</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>snailwu-demo-releases</id>
                <name>releases</name>
                <url>https://snailwu-maven.pkg.coding.net/repository/demo/releases/</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>snailwu-demo-snapshots</id>
                <name>snapshots</name>
                <url>https://snailwu-maven.pkg.coding.net/repository/demo/snapshots/</url>
                <releases>
                    <enabled>false</enabled>
                </releases>
            </repository>
        </repositories>
    </project>
    
    

    2、配置在 settings.xml

    配置在这里需要先声明一个 profile:

    <settings>
        <profiles>
            <profile>
                <id>snailwu-demo</id>
                <repositories>
                    <!-- 按照顺序进行包的拉取 -->
                    <repository>
                        <id>aliyun-public</id>
                        <name>aliyun-maven</name>
                        <url>https://maven.aliyun.com/repository/public</url>
                        <snapshots>
                            <enabled>false</enabled>
                        </snapshots>
                    </repository>
                    <repository>
                        <id>snailwu-demo-releases</id>
                        <name>releases</name>
                        <url>https://snailwu-maven.pkg.coding.net/repository/demo/releases/</url>
                        <snapshots>
                            <enabled>false</enabled>
                        </snapshots>
                    </repository>
                    <repository>
                        <id>snailwu-demo-snapshots</id>
                        <name>snapshots</name>
                        <url>https://snailwu-maven.pkg.coding.net/repository/demo/snapshots/</url>
                        <releases>
                            <enabled>false</enabled>
                        </releases>
                    </repository>
                </repositories>
            </profile>
        </profiles>
    </settings>
    

    三、发布配置

    在项目中的 pom.xml 文件中进行配置:

    <project>
        <!-- 配置 deploy -->
        <distributionManagement>
            <repository>
                <!--必须与 settings.xml 的 id 一致-->
                <id>snailwu-demo-releases</id>
                <name>releases</name>
                <url>https://snailwu-maven.pkg.coding.net/repository/demo/releases/</url>
            </repository>
            <snapshotRepository>
                <!--必须与 settings.xml 的 id 一致-->
                <id>snailwu-demo-snapshots</id>
                <name>snapshots</name>
                <url>https://snailwu-maven.pkg.coding.net/repository/demo/snapshots/</url>
            </snapshotRepository>
        </distributionManagement>
    </project>
    

    Maven 会自动根据包的名字是否带有 SNAPSHOT 来区分发布到哪个仓库。

    四、生成 javadoc 和 sources jar包

    <project>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <!-- 生成 xxxxxx-sources.jar 包 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!-- 生成 xxxxx-javadoc.jar 包 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </project>
    

    五、命令

    如果是 SpringBoot 项目,会自动给你生成 maven 的 jar 和命令,如图:

    此时,你的机器不需要安装 maven,直接使用 mvnw 这个脚本即可运行,比如 ./mvnw clean compile install deploy

    如何跳过测试?

    1. 在pom.xml 的 properties 下配置 <maven.test.skip>true</maven.test.skip>

    2. 在执行 ./mvnw 命令时,添加 -Dmaven.test.skip=true,实际就是执行时动态传一个变量,1中是静态配置

    ------------------------------我是博客签名------------------------------
    座右铭:不要因为知识简单就忽略,不积跬步无以至千里。
    版权声明:自由转载-非商用-非衍生-保持署名。
    本作品采用知识共享署名 4.0 国际许可协议进行许可。
    ----------------------------------------------------------------------
  • 相关阅读:
    Java
    Leetcode 计划
    Java虚拟机
    浅谈 MVP in Android
    【PAT】B1074 宇宙无敌加法器(20 分)
    【PAT】B1076 Wifi密码(15 分)
    【PAT】B1075 链表元素分类(25 分)
    【PAT】B1077 互评成绩计算(20 分)
    【PAT】B1078 字符串压缩与解压(20 分)
    【PAT】B1079 延迟的回文数(20 分)
  • 原文地址:https://www.cnblogs.com/wuqinglong/p/15609400.html
Copyright © 2020-2023  润新知