美文网首页
「重学 Maven」1. 命令创建工程

「重学 Maven」1. 命令创建工程

作者: Ethan_zyc | 来源:发表于2021-11-28 22:05 被阅读0次

    maven 创建工程命令

    mvn archetype:generate -DgroupId=com.zhss.maven -DartifactId=maven-first-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    

    分解一下

    • mvn archetype:generate :archetype 是一个maven 插件,本意是原型,这里可以理解为模板,整体就是基于模板来生成项目。
    • -DgroupId=com.zhss.maven :-D 的意思如下,这里就是设置 groupId 这个属性值为 com.zhss.maven
    • -DartifactId=maven-first-app :同上
    • -DarchetypeArtifactId=maven-archetype-quickstart :同上
    • -DinteractiveMode=false:表示maven是否需要和用户交互以获得输入

    -D & -P

    -D:用来设置一些属性值
    比如 pom 文件如下

    <properties>     
        <theme>myDefaultTheme</theme> 
    </properties>
    

    mvn -Dtheme=halloween clean package 就会覆盖 theme 原先 myDefaultTheme 值,变成 halloween。

    -P:Profiles配置文件

    <profile>
       <id>test</id>
       <activation>
          <property>
             <name>env</name>
             <value>test</value>
          </property>
       </activation>
       ...
    </profile>
    

    执行 mvn test -Penv=test 执行 test 的配置文件

    maven的约定

    • src/main/java 目录里存放的是 java 源码
    • src/test/java 目录里包含了测试代码
    • pom 文件是maven核心配置文件,是这个项目的 ProjectObjectModel。


      image.png

    打包

    运行 mvn clean package 命令


    image.png

    如上,可以看到 maven 为我们做了这些操作:

    1. 从 aliyun 的仓库下载了 junit 的jar包和pom文件
    2. 执行了一些插件的操作
      1. clean:Deleting /Users/ethan/code/java/ruyuan/maven-first-app/target。删除target目录
      2. resources:skip non existing resourceDirectory /Users/ethan/code/java/ruyuan/maven-first-app/src/main/resources。没有资源文件,就没有执行
      3. compile:Compiling 1 source file to /Users/ethan/code/java/ruyuan/maven-first-app/target/classes:将 java 文件编译成 class 文件。
      4. testResources:skip non existing resourceDirectory /Users/ethan/code/java/ruyuan/maven-first-app/src/test/resources。没有资源文件,就没有执行
      5. testCompile:Compiling 1 source file to /Users/ethan/code/java/ruyuan/maven-first-app/target/test-classes。将 test 中的 java 文件编译成 class 文件。
      6. test:跑单元测试
      7. jar:/Users/ethan/code/java/ruyuan/maven-first-app/target/maven-first-app-1.0-SNAPSHOT.jar。打成 jar 包。

    注意一下:compile 的步骤中都有一条意思是 “Changes detected - recompiling the module!”。意思就是检测到文件变更,需要重新编译这个模块。也就是说如果文件没有变更,就不会重复编译。

    运行 jar 包

    java -cp target/maven-first-app-1.0-SNAPSHOT.jar com.zhss.maven.App
    

    -cp 是 classpath 的意思,意思从这个 jar 包里找到 class 文件

    相关文章

      网友评论

          本文标题:「重学 Maven」1. 命令创建工程

          本文链接:https://www.haomeiwen.com/subject/fdohxrtx.html