maven打包

Posted qiaozhuangshi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven打包相关的知识,希望对你有一定的参考价值。

技术图片

如果打成jar包, pom文件中设置打包方式(默认是打包成jar包)

<packaging>jar</packaging>

添加jar包依赖

<dependency>
    <groupId>com.slyak</groupId>
    <artifactId>spring-data-jpa-extra</artifactId>
    <version>3.0.0.RELEASE</version>
    <!-- system 系统中要以外部JAR包的形式提供,maven不会在repository查找它 -->
    <scope>system</scope>
    <systemPath>$project.basedir/lib/spring-data-jpa-extra-3.0.0.RELEASE.jar</systemPath>
</dependency>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
</plugins>

ok!!

二、打成war包

<!-- 设置pom的打包方式 -->
<packaging>war</packaging>

<!-- jar包依赖 -->
<dependency>
    <groupId>com.slyak</groupId>
    <artifactId>spring-data-jpa-extra</artifactId>
    <version>3.0.0.RELEASE</version>
    <!-- system 系统中要以外部JAR包的形式提供,maven不会在repository查找它 -->
    <scope>system</scope>
    <systemPath>$project.basedir/lib/spring-data-jpa-extra-3.0.0.RELEASE.jar</systemPath>
</dependency>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>

        <!-- 这个插件是将system域(只在编译和测试可用)也就是自定义jar包(打成war包时放在lib-provided,tomcat不扫描)放到/WEB-INF/lib下
                打成war包时用
             -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.8</version>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>$project.build.directory/$project.build.finalName/WEB-INF/lib</outputDirectory>
                        <includeScope>system</includeScope>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

参考地址

打包时的命令

mvn打包,并指定 Profiles配置文件 和 模块名
mvn clean package -P prod -pl groupId:artifactId -am -Dmaven.test.skip=true

-P代表(Profiles配置文件)
也就是说在<profiles>指定的<id>中,可以通过-P进行传递或者赋值。
-pl (全称:--projects)  说明:选项后可跟随 groupId:artifactId 或者所选模块的相对路径(多个模块以逗号分隔)
-am (全称:--also-make): 表示同时处理选定模块所依赖的模块

参考地址

以上是关于maven打包的主要内容,如果未能解决你的问题,请参考以下文章

maven打包$env没有值

使用maven打包指定目录

maven打包和镜像地址有关系吗

maven打包问题?

maven打包问题,如何打包配置文件

maven插件工程打包报错