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

2021-11-28  本文已影响0人  Ethan_zyc

maven 创建工程命令

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

分解一下

-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的约定

打包

运行 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 文件

上一篇下一篇

猜你喜欢

热点阅读