精华内容
下载资源
问答
  • 将自己需要依赖的jar 打包到本地maven 库 (前提的配置好本地mvn) 打开cmd 窗口 输入 mvn install:install-file -Dfile=c:/xxx/xxx.jar -DgroupId=jeewx -DartifactId=jeewx-Dversion=1.0 -Dpackaging=jar  ...

    //例子
    <scope>system</scope>
    //应用外置jar包
    <dependency>
        <groupId>jeewx</groupId>
        <artifactId>jeewx</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${basedir}/lib/jeewx-1.0.jar</systemPath>
    </dependency>
    scope  maven中scope的默认值是compile

    scope的分类

    1)compile 默认是compile。compile表示被依赖项目需要参与当前项目的编译,包括后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。

    2)test 表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。比较典型的如junit

    3)runtime 表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过编译而已。在终端的项目(非开源,企业内部系统)中,和compile区别不是很大。比较常见的如JSRXXX的实现,对应的API jar是compile,具体实现是runtime的,compile只需要知道接口就足够了。oracle jdbc驱动jar包就是一个很好的例子,一般scope为runtime。  另runtime的依赖通常和optional搭配使用,optional为true。即可以用A实现也可以用B实现。

    4)procided 意味着打包的时候可以不用包进去,别的设施(web container)会提供。事实上该依赖理论上可以参与编译、测试、运行等周期。相当于compile,但是打包阶段做了exclude的动作。

    5)system 和provide相同,不过被依赖项不会从maven仓库抓,而是从本地系统文件拿,一定要配合systemPath使用

     

    systempath

    当maven依赖本地而非repository中的jar包,sytemPath指明本地jar包路径

    解决方案一:

    将本地应用的jar包上传值公司私服(需要去改maven的私服地址)然后常规应用

    <dependency>
        <groupId>jeewx</groupId>
        <artifactId>jeewx</artifactId>
        <version>1.0</version>
    </dependency>
    解决方案二:

    将自己需要依赖的jar 打包到本地maven 库 (前提的配置好本地mvn)

    打开cmd 窗口 输入

    mvn install:install-file -Dfile=c:/xxx/xxx.jar -DgroupId=jeewx -DartifactId=jeewx-Dversion=1.0 -Dpackaging=jar  

     

    解决方案三:

    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <includeSystemScope>true</includeSystemScope>
        </configuration>
    </plugin>
    解决方案四:

    修改 xxxx.MF文件 里面的jar引用 加上自己需要的jar包 按空格分隔 (这种有个大问题是每次都得改xxx.MF文件不太方便)

     
    ————————————————
    版权声明:本文为CSDN博主「do_you_like_van_game」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/do_you_like_van_game/article/details/96148321

    展开全文
  • Maven的pom文件打包方式选择

    千次阅读 2020-07-21 19:33:54
    文章主要对pom文件中的packaging打包方式做一些介绍: 我们都知道pom文件可以对版本进行规范和统一,今天在使用pom文件的时候发现packaging有三种打包方式,写一篇博客来记录一下三种打包方式的不同。 packaging可以...

    文章主要对pom文件中的packaging打包方式做一些介绍:
    我们都知道pom文件可以对版本进行规范和统一,今天在使用pom文件的时候发现packaging有三种打包方式,写一篇博客来记录一下三种打包方式的不同。
    packaging可以有pom,war,jar三种打包方式。
    项目中使用maven进行模块化管理,使用pom文件维护各个模块之间的依赖和继承关系。在进行编写的时候,项目模块必定有很多重复的代码块,我们可以将这些重复的代码块抽取出来,形成一个单独的共用模块,之后再进行编写这些代码的时候只需要将抽取出来的共用的模块pom文件的GAV导入到接下来的模块中我们就可以使用了。
    在使用maven进行模块化的管理时,一般都会有一个父级的项目,pom文件中的GAV坐标是必须要配置的,我们之后写的子项目模块可以使用< parent>标签继承父级项目,而在GAV的下边还会配置packaging的打包方式。所有的父级项目的pom文件的打包方式都要设置成pom。如果不做配置,packaging的默认打包方式为jar。在子项目中的GV如果不配置就会继承父级项目的GV坐标。子类项目的packaging值只能是war或jar。如果是需要部署的项目,一般是包含controller的module,需要打包成war类型,如果只是内部调用或者是作服务使用,则推荐打成jar包,是服务于war包的, 位于war包中的lib文件夹下。
    简单来说,jar包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些jar包引入到你的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在lib目录下。
    war是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来说,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。简单来说,war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。
    部署普通的spring项目用war包就可以,部署springboot项目用jar包就可以,因为springboot内置tomcat

    展开全文
  • 前提 对项目中通用模块单独拧出来,便于维护和使用。 思考 本地开发环境,可以引入模块进行开发。 部署测试环境,jenkins打包问题:笔者不熟悉jenkins如何...那么问题,如果我模块中依赖其他第三方pom文件打包不包括

    前提

    对项目中通用模块单独拧出来,便于维护和使用。

    思考

    本地开发环境,可以引入模块进行开发。
    部署测试环境,jenkins打包问题:笔者不熟悉jenkins如何打包(项目中存在多git地址,打包jar指定目录)
    通过Maven私库,打包模块jar,在项目pom文件中直接引用

    问题

    今天在测试中发现,打包模块module_datasource实际通过idea对maven插件pack打包实际大小8kb。
    在这里插入图片描述
    经过实际确认,jar包中只包括代码对编译文件。那么问题,如果我模块中依赖其他第三方pom文件,打包不包括第三方文件,那么这个jar注定有问题。

    解决

    参考地址

    <plugin>
    	<artifactId>maven-assembly-plugin</artifactId>
    	<configuration>
    		<descriptorRefs>
    			<descriptorRef>jar-with-dependencies</descriptorRef>
    		</descriptorRefs>
    	</configuration>
    </plugin>
    

    打包
    在这里插入图片描述
    打包jar区别从大小上就可以看出来
    在这里插入图片描述
    观察jenkins的控制台打印日志 - 成功
    在这里插入图片描述

    展开全文
  • 1.Maven的pom文件 在每一个maven项目中,都...而maven就是通过加载pom.xml来获取项目的全部信息,从而实现依赖,构建,测试,打包,生成报告的所有功能.(如果没有pom文件则无法实现构建,打包,测试等操作) 1.2基本项目

    1.Maven的pom文件

    在每一个maven项目中,都存在一个pom文件,这是一个maven的核心配置文件,我们必须掌握其中的常用标签才能够使用好maven

    1.1pom文件的作用

    POM(Project Object Model,项目对象模型 ),是maven管理项目的核心思想,所以每个项目中都有一个pom.xml.而maven就是通过加载pom.xml来获取项目的全部信息,从而实现依赖,构建,测试,打包,生成报告的所有功能.(如果没有pom文件则无法实现构建,打包,测试等操作)

    1.2基本项目信息

    最简单的pom文件骨架如下

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
    
        <artifactId>maven-demo01</artifactId>
    
        <version>1.0-SNAPSHOT</version>
    
    </project>
     
    

    在这个pom.xml中仅有该项目的基本信息,包括

    • modelVersion:描述这个POM文件是遵从哪个版本的项目描述符,目前我们正在使用的maven都是4.0.0.
    • groupId:当前项目的名称(一般公司域名倒写)
    • artifactId:当前项目的模块名称(项目名称)
    • version:当前项目的版本

    所以说,无论创建什么项目这些内容是必须存在的,否则无法描述项目,maven也无法管理项目

    groupId/artifactId/version 唯一定位到一个maven资源,可以通过这3个坐标到库中找到具体资源

    比如指定一个资源

    <groupId>org.springframework</grougpId>

    <artifactId>spring-beans</artifactId>

    <version>4.3.11.RELEASE</version>

    可以在本地库找到库资源,对应关系

    groupId:多级文件夹 org/springframework

    artifactId:对应一个同名文件夹 spring-beans

    2.maven的依赖

    当一个项目开始编写代码时,需要引入很多的jar包资源,这时可以利用maven的依赖标签来使用和管理这些jar包资源

    2.1 dependencies

    在pom文件中,可以使用dependencies标签,其中包含若干个dependency标签来实现对依赖资源jar包的直接使用.比如当我们想开发与spring-beans有关的代码时,可以引入这个依赖.

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
    
        <artifactId>maven-demo01</artifactId>
    
        <version>1.0-SNAPSHOT</version>
    
        <dependencies>
    
            <!--spring-beans-->
    
            <dependency>
    
                <groupId>org.springframework</groupId>
    
                <artifactId>spring-beans</artifactId>
    
                <version>4.3.11.RELEASE</version>
    
            </dependency>
    
        </dependencies>
    
    </project>
     
    

    引入依赖的作用就相当于是在项目里我们导入了这个jar包,这时你就可以开始使用它了.我们还可以在右侧maven管理窗口看到这个依赖的引入.

    2.2依赖的传递性

    我们要知道一个依赖的jar包,其本质也是一个java工程,所以在开发这个java工程时也会用到其他的jar包资源,在maven中,这种相互的依赖关系是可以进行传递的.比如A工程开发需要B工程的jar包支持,而B工程又在开发时使用了C工程jar包,当A工程依赖B工程时,也会同样把C工程依赖使用.

    maven工程利用依赖的传递性可以实现很多简单的依赖配置,不需要重复复杂的实现.比如案例中spring-beans,不仅使用了spring-beans还传递过来了spring-core

    2.3去除传递性

    有的时候我们本来依赖的一个jar包资源,而这个jar包资源传递给了当前 工程很多不需要的依赖,这时为了最简配置依赖资源,我们可以从这个依赖中将不需要的去除,使用<exclusions>标签实现.

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
    
        <artifactId>maven-demo01</artifactId>
    
        <version>1.0-SNAPSHOT</version>
    
        <dependencies>
    
            <!--spring-beans-->
    
            <dependency>
    
                <groupId>org.springframework</groupId>
    
                <artifactId>spring-beans</artifactId>
    
                <version>4.3.11.RELEASE</version>
    
                <exclusions>
    
                    <exclusion>
    
                        <groupId>org.springframework</groupId>
    
                        <artifactId>spring-core</artifactId>
    
                    </exclusion>
    
                </exclusions>
    
            </dependency>
    
        </dependencies>
    
    </project>
    

     看到标签的结构,是exlusions包含了若干个exclusion所以当传递的多个依赖都需要去除时,可以在其中包含多个exclusion

    展开全文
  • 网上的教程都试过 ...解决办法:先在pom中写好依赖,执行一遍打包:clean package,这个时候控制台中显示下载没有依赖文件。 如果这个时候pom中还是报错,或者下图这里报错。只需要,在pom中删...
  • 将自己需要依赖的jar 打包到本地maven 库 (前提的配置好本地mvn) 打开cmd 窗口 输入 mvn install:install-file -Dfile=c:/xxx/xxx.jar -DgroupId=jeewx -DartifactId=jeewx-Dversion=1.0 -Dpackaging=jar  ...
  • 打包插件(带依赖)----pom文件

    千次阅读 2018-08-04 11:29:57
    记得两点:一是在依赖的包pom文件中加入&lt;scope&gt;provied&lt;/scope&gt; 二是在下面pom改全类名 点击package就会生成两个jar,一个带依赖,一个不带 &lt;build&gt; &lt;...
  • pom文件中添加如下代码: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <...
  • 服务器上已经有大数据组件的依赖都无需打包依赖,所以可以在依赖加上<scope>provided</scope> 2. 如果使用IDEA,在本地运行项目时要在运行配置勾选【Include dependencies with “Provided” scope】,...
  • 一般未一起打包是因为pom不是继承自spring-boot-starter-parent导致的需要在pom.xml文件写入以下配置 <plugins> <plugin> <groupId>org.springframework.boot</groupId>...
  • 关于maven项目配置打包主要是在pom.xml文件中 ,pom.xml中如果没有指定打包类型,默认打包类型为jar, packaging指定打包文件为war类型需要引入maven打包依赖包 org.apache.maven.plugins maven-war-...
  • 有时候做微服务或者单个应用时,pom文件不对,或者少一个依赖,导致编码出错,运行出错,会浪费很长时间,所以,特来写一篇博客,也算是对自己的加深印象吧。come on,baby pom.xml <!--热部署 2个pom 缺一不可--&...
  • 1、项目结构 admin、api和web模块依赖core模块,admin,api和web模块之间没有任何依赖的...1、父模块不需要打包和对应不需要打包的模块的pom文件不需要写: <build> <plugins> <plugin> <gro...
  • Gradle生成pom文件, 包括依赖

    千次阅读 2018-11-12 20:24:00
    和旧版本对比发现原来缺少了pom文件pom文件里有我上传jar包对应的依赖. 于是使用gradle生成pom //参数传入 flavor = project.hasProperty('flavor') ? flavor : "common" task createPom { apply ...
  • Maven中Pom文件打包配置build

    千次阅读 2017-09-18 16:41:07
    -- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 --> <groupId>org.apache.maven.plugins <artifactId>maven-jar-plugin <addClasspath>true <classpathPrefix>lib/ <mainClass>...
  • maven手动打包pom文件配置

    千次阅读 2017-07-21 16:42:17
    在使用maven来管理项目时,项目除了web项目,还有可能为控制台程序,一般用于开发一些后台服务的程序。最近在工作中也遇到了这种场景,在做定时任务...(1)手动打包maven工程pom文件配置:  4.0.0  com.bj58.opt
  • springboot之pom文件引入依赖

    千次阅读 2019-03-27 15:51:55
    <?xml version="1.0" encoding="UTF-8"?...project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac...
  • 有时候自己写的jar包依赖不能从仓库下载,只能本地导入。 添加本地jar 比如这个,添加本地项目下面libs下的jar包。 groupId和artifactId理论上是可以随便写,因为是本地路径的。 <scope>system</scope> ...
  • 一般来说,同一个项目一个pom文件即可,但是有时候本地测试时编译项目使用的pom文件打包上传到服务器上所使用的pom文件不一致,这时候虽然可以使用同一个pom文件,但是很不方便。本地测试时需要把打包时使用的pom...
  • pom控制java项目的打包方式

    千次阅读 2016-03-25 14:38:08
    maven在项目管理中有着重要的作用 有的时候我们需要将编写好的程序进行打包...这里只一个pom文件的例子,控制了对导出jar包的导出路径,jar包名称,主函数,依赖包的配置 并且一次可以导出多个jar包(指定不同的配置)
  • 更改maven项目的设置--setting-maven 转载于:https://www.cnblogs.com/zhangchiblog/p/8206713.html
  • Maven打包,不打包pom文件

    千次阅读 2014-09-25 15:21:17
    如果是 jar 包,在 Plugin 中配置      org.apache.maven.plugins  maven-jar-plugin      false         如果是 war 包,在 Plugin 中配置    
  • pom文件解析

    千次阅读 2017-05-07 09:49:27
    pom文件解析 Maven的依赖是使用Maven坐标来定位的,而Maven坐标主要由GAV(groupId, artifactId, version)构成。因此,使用任何一个依赖之间,你都需要知道它的Maven坐标。 http://www.mvnrepository.com 在...
  • maven 父子关系 副项目中打包方式必须是pom 如 pom,父项目中使用msite-base指定子项目 子项目中使用 指定,子项目继承父项目的大部分属性 父项目 4.0.0 com.hlzt.msite msite 0.0.1-SNAPSHOT pom msite ...
  • 将不在pom文件中的jar包打包WEB-INF/lib目录下
  • 背景: 1,生成3个目录/lib,/conf,/bin目录 2,把所有的jar目录编译、拷贝到/lib目录(包括maven的jar包和lib目录下的jar,以及...下面是配置的pom.xml,相关的配置都加了注释,一看就能明白,把build节点拷贝...
  • 主要介绍了Maven pom.xml 添加本地jar包依赖以及打包方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 设置位置 &lt;build&gt; &lt;plugins&gt; 在此处添加 ...maven编译时即打包main class主类,有打包依赖jar &lt;!-- maven jar in main class and dependencies start --&gt; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,818
精华内容 22,327
关键字:

pom文件没有打包方式的依赖