工程管理(一):maven

1.setting优先级
    .m2/setting.xml -> config/setting.xml
2.仓库优先级
    local -> nexus -> center
3.pom element
    modelVersion:org.apache.maven/model 超父
    groupId:部门
    artifactId:功能
    version:版本号 SNAPSHOT RELEASE 主版本号.此版本号.增量版本号
    packaging:包(default:jar) jar war pom maven-plugin
    dependencyManagement:
        一般父pom
        统一版本号
        声明式
        dependencyManagement 下 dependencies 的依赖 子类不会自动加载
    dependency:
        type:default jar
        scope:作用域
            compile default 编译和打包
            test 编译和打包
            provided 在编译和测试的过程有效,最后生成war包时不会加入:servlet
            runtime 在运行的时候依赖,在编译的时候不依赖  jdbc 驱动
            system 本地一些 jar(pay 对接之类)
4.依赖传递
    scope:也会传递。
    第一列表示直接依赖的scope,第一行表示间接依赖
                    compile    test    provided   runtime
        compile        compile     -       -          runtime
        test       test       -       -          test
        provided   provided   -       provided   provided
        runtime        runtime        -       -          runtime

    传递原则
        最短路径
        加载先后:dependencies 先后顺序

5.生命周期  lifecycle
    clean
        pre-clean
        clean
        post-clean
    default
        test
        compile
        package
        install
        deploy
         ..
    site
        pre-site
        site
        post-site
        site-deploy
    1.A Build Lifecycle is Made Up of Phases 一个生命周期由多个phases组成
    2.A Build Phase is Made Up of Plugin Goals 一个phases由多个goals组成
 lifecycle:生命周期
phase:可以理解为任务单元
goal: 这是执行任务的最小单元,它可以绑定到任意个phase中,一个phase有一个或多个goal
mojo: lifecycle与phase与goal都是概念上的东西,mojo才是做具体事情的,可以简单理解mojo为goal的实现类

6.命令
    compile
    test
    mvn package-Dmaven.test.skip=true   打包项目时跳过单元测试
    package
    install
    deploy 发布到私服
    mvn dependency:list     显示所有已经解析的所有依赖
    mvn dependency:tree > d.text 以树的结构展示项目中的依赖
    mvn dependency:analyze 对项目中的依赖进行分析,依赖未使用,使用单未引入
    mvn tomcat:run              启动tomcat
    全局版本修改
       version-maven-plugin  mvn version:set -DnewVersion=1.1-SNAPSHOT
    强制拉取
        mvn clean package -U
7.plugin
    https://maven.apache.org/plugins/
    http://www.mojohaus.org/plugins.html
    findbugs 静态代码检查
    versions 统一升级版本号
    mvn versions:set -DnewVersion=1.1
mvn versions:set -DoldVersion=* -DnewVersion=1.0.1-SNAPSHOT -DprocessAllModules=true -DallowSnapshots=true
    source 打包源代码
    assembly 打包zip、war
    tomcat7
8.自定义插件
    https://maven.apache.org/guides/plugin/guide-java-plugin-development.html
    <packaging>maven-plugin</packaging>
    extends AbstractMojo
    mvn install
    参数传递
 <dependencies>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-plugin-api</artifactId>
            <version>3.5.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.plugin-tools</groupId>
            <artifactId>maven-plugin-annotations</artifactId>
            <version>3.5</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
@Mojo(name = "myPlugin",defaultPhase = LifecyclePhase.PACKAGE)
public class MyPlugin extends AbstractMojo {
    @Parameter
    private String msg;


    public void execute() throws MojoExecutionException, MojoFailureException {
        System.out.println("this is my plugin"+msg);
    }
}
<plugin>
                <groupId>com.ermu</groupId>
                <artifactId>maven-plugin</artifactId>
                <version>1.0-SNAPSHOT</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>myPlugin</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
9.Profile
    使用场景 dev/test/pro
    setting.xml 家和公司两套
    https://help.sonatype.com/repomanager3/download?_ga=2.107225478.54677454.1546739893-329951149.1546739893
    发布
<distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <name>nexus-releases</name>
            <url>http://118.24.21.49:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <name>nexus-snapshots</name>
            <url>http://118.24.21.49:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值