Maven

Maven

maven 生命周期 #

  • clean: 清空build的产生的内容和缓存
  • compile: java编译成class
  • test: 执行test
  • package: 按照pom的约定打包成对应的jar/war等包
  • install: 将包安装到maven的仓库,一般是本地的中心仓库中。
  • deploy: 发布包

命令行打包:

mvn clean -U compile package 

执行特定的测试(指定的TestClass中的TestFunc):

mvn -Dtest=xxxTestClass#xxTestFunc test

Maven带依赖jar打包 #

默认的jar包打包方式不会将dependency中的jar包打进最终的包里。war包会默认打进去。

如果我们希望实现这样的需求,我们需要使用assembly插件。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>org.example.App</mainClass> <!-- 指定启动类 -->
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
    <executions>
        <execution><!-- 配置执行器 -->
            <id>make-assembly</id>
            <phase>package</phase><!-- 绑定到package生命周期阶段上 -->
            <goals>
                <goal>single</goal><!-- 只运行一次 -->
            </goals>
        </execution>
    </executions>
</plugin>

上面配置执行器的部分一直没有成功,需要手动打包才行。使用assembly:single 来代替package

mvn clean compile assembly:single