maven打包相关

一、maven打包逻辑:

  • maven的目录约定: 
  • pom.xml所在的目录应为项目的根目录,假设该目录为${proj-dir},那么Maven有以下假设:
  • ${proj-dir}/src/main/java —— 存放项目的.java文件。
  • ${proj-dir}/src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件。
  • ${proj-dir}/src/test/jave —— 存放所有测试.java文件,如JUnit测试类。
  • ${proj-dir}/src/test/resources —— 测试资源文件。
  • ${proj-dir}/target —— 项目输出位置。
  • 运行一条mvn clean package命令,Maven会帮你清除target目录,重新建一个空的,编译src/main/java类至target/classes,复制src/main/resources的文件至target/classes,编译src/test/java至target/test-classes,复制src/test/resources的文件至target/test-classes;然后运行所有测试;测试通过后,使用jar命令打包,存储于target目录。Maven做的事情一点也不少,只是都对用户隐蔽起来了,它只要求你遵循它的约定。

--------------------- 
原文:https://blog.csdn.net/catoop/article/details/48489365?utm_source=copy 
 

二、打包跳过测试

1、修改pom文件

<project>  
  [...]  
  <build>  
    <plugins>  
      <plugin>  
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-surefire-plugin</artifactId>  
        <version>2.18.1</version>  
        <configuration>  
          <skipTests>true</skipTests>  
        </configuration>  
      </plugin>  
    </plugins>  
  </build>  
  [...]  
</project>

2、mvn clean package -DskipTests

3、mvn clean package -Dmaven.test.skip=true    直接编译都跳过

二、打包成jar包指定包名

<packaging>jar</packaging>

    <build>  
            <finalName>cyc</finalName>  
            <plugins>  
                <plugin>  
                    <groupId>org.springframework.boot</groupId>  
                    <artifactId>spring-boot-maven-plugin</artifactId>  
                </plugin>  
            </plugins>  
  </build>

三、打成war包

  <packaging>jar</packaging>

<dependencies>
    <!-- … -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- … -->
</dependencies>

确保内置servlet container 不会干涉发布该war包的servlet container,方案是标记内置servlet container 的依赖为provided

application.yml 中的server.port只在spring boot自带的tomcat中起作用,发布在外置的tomcat中是不起作用的

四、 maven 查看项目依赖树

mvn dependency:tree -Dverbose

mvn dependency:tree 时,我用到了“无处遁形”,其实有时你会发现简单地用 mvn dependency:tree 往往并不能查看到所有的传递依赖。不过如果你真的想要看所有的,必须得加一个-Dverbose参数,这时就必定是最全的了。
全是全了,但显示出来的东西太多,头晕目眩,有没有好法呢?当然有了,加上Dincludes或者Dexcludes说出你喜欢或讨厌,mvn dependency:tree就会帮你过滤出来:

引用
Dincludes=org.springframework:spring-tx
过滤串使用groupId:artifactId:version的方式进行过滤,可以不写全啦,如

mvn dependency:tree -Dverbose -Dincludes=asm:asm

更多详情:https://www.cnblogs.com/ptqueen/p/7985198.html 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值