maven配置初步之plugs包管理(一)

2023-10-14 09:30
文章标签 maven 配置 初步 管理 plugs

本文主要是介绍maven配置初步之plugs包管理(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1、引用本地包

<dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_core</artifactId>
            <version>2.10</version>
            <scope>system</scope>
             <systemPath>E:\Official Projects\Jmeter\apache-jmeter-2.10\lib\ext\ApacheJMeter_core.jar</systemPath>
        </dependency>

</scope>可以使用以下值:

* compile,缺省值,适用于所有阶段,会随着项目一起发布。 
    * provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 
    * runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 
    * test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 
    * system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

2、jar打包工具,maven-shade-plugin,将依赖包一起打包(它能够将所有jar里的spring.schemas文件进行合并,在最终生成的单一jar包里)

<plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>2.2</version>
                   <executions>
                       <execution>
                           <phase>package</phase>
                           <goals>
                               <goal>shade</goal>
                           </goals>
                           <configuration>
                               <transformers>
                                   <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                       <resource>META-INF/spring.handlers</resource>  
                                   </transformer>
                                   <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                       <resource>META-INF/spring.schemas</resource>  
                                   </transformer>
                               </transformers>
                           </configuration>
                       </execution>
                   </executions>
          </plugin>


3、将配置文件打在jar包之外

<build>

  <plugins>

  <plugin>

  <groupId>org.apache.maven.plugins</groupId>  

    <artifactId>maven-jar-plugin</artifactId>  

    <configuration>  

        <archive>  

            <manifest>  

                <addClasspath>true</addClasspath><!-- 加载class -->  

                <classpathPrefix>lib/</classpathPrefix><!-- 加载的class目录的前缀(依赖的jar目录) -->  

                <mainClass>com.bj.ihanysoft.MavenDemo.App</mainClass><!-- 入口类名 -->  

            </manifest>  

        </archive>  

     </configuration>  

  </plugin>

  <plugin>  

    <groupId>org.apache.maven.plugins</groupId>  

    <artifactId>maven-dependency-plugin</artifactId>  

    <executions>  

        <execution>  

            <id>copy-dependencies</id>  

            <phase>package</phase>  

            <goals>  

                <goal>copy-dependencies</goal>  

            </goals> 

            <configuration>  

                <outputDirectory>${project.build.directory}/lib</outputDirectory>  

                <overWriteReleases>false</overWriteReleases>  

                <overWriteSnapshots>false</overWriteSnapshots>  

                <overWriteIfNewer>true</overWriteIfNewer>  

            </configuration>  

        </execution>  

    </executions>  

</plugin>  

   <!-- 以utf-8编码拷贝配置文件,拷贝过程中是可以做变量替换的,也就是说你的配置文件可以是个模板,里面的${}所包含的内容是可以拷贝过程中替换的 -->  

<plugin>  

    <groupId>org.apache.maven.plugins</groupId>  

    <artifactId>maven-resources-plugin</artifactId>  

    <version>2.4</version>  

    <executions>  

        <execution>  

            <id>copy-resources</id>  

            <phase>package</phase>  

            <goals>  

                <goal>copy-resources</goal>  

            </goals>  

            <configuration>  

                <encoding>UTF-8</encoding>  

                <outputDirectory>${project.build.directory}</outputDirectory><!-- 把配置文件拷到和jar包同一个路径下 -->  

                <resources>  

                    <resource>  

                        <directory>src/main/resource/</directory>  

                        <includes>  

                            <include>s.xml</include>  

                        </includes>  

                        <filtering>true</filtering>  

                    </resource>  

                </resources>  

            </configuration>  

        </execution>  

    </executions>  

</plugin>  

<!-- 打jar包时需要把配置文件给排除在外 -->  

<plugin>  

    <groupId>org.apache.maven.plugins</groupId>  

    <artifactId>maven-jar-plugin</artifactId>  

    <executions>  

        <execution>  

            <phase>package</phase>  

            <goals>  

                <goal>jar</goal>  

            </goals>  

            <configuration>  

                <classifier>lib</classifier>  

                <excludes>  

                    <exclude>s.xml</exclude>  

                </excludes>  

            </configuration>  

        </execution>  

    </executions>  

</plugin> 

  </plugins>

  

  <pluginManagement>

<plugins>

    <plugin>

        <groupId>org.eclipse.m2e</groupId>

        <artifactId>lifecycle-mapping</artifactId>

        <version>1.0.0</version>

        <configuration>




转载于:https://my.oschina.net/mutianya/blog/189295

这篇关于maven配置初步之plugs包管理(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/209630

相关文章

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的