精华内容
下载资源
问答
  • 以下描述为对问题的 抽象描述项目A 打包生成JarA,项目A依赖了Netty包和一个自己本地的JarB包打包之后JarA的 文件结构 如下:(1)JarA包的根路径下存在 JarB 和NettyJar(2)在JarA的Manifest文件中指定了 mainClass和...

    以下描述为对问题的 抽象描述

    项目A 打包生成JarA,项目A依赖了Netty包和一个自己本地的JarB包

    打包之后JarA的 文件结构 如下:

    (1)JarA包的根路径下存在 JarB 和NettyJar

    (2)在JarA的Manifest文件中指定了 mainClass和

    classpath:jarB.jar nett-all.jar

    这样配置之后 运行jarA ,按理来说 jarA都能够根据classpath 找到JarB 和NettyJar ,然后使用相关依赖包中的类。

    JarA的mainClass 的main方法实现非常简单public static void main(String[] args) {

    System.out.println(ChannelHandler.class.getName());//测试是否能够找到Netty Jar

    System.out.println(Person.class.getName());// 测试能否找到本地Jar

    }

    执行 java -jar jarA.jar 会输出ChannelHandler的全限定类名,但是报错提示找不到Person类。

    问题: Person类定义在jarB 包中,查看JarA 包中确实存在jarb,打开jarb 里面确实也存在Person类, 为什么程序会提示找不打Person类?

    Jar包文件,下载后在本地直接运行 java -jar 就可以 看到错误提示

    链接: https://pan.baidu.com/s/1YNxM... 提取码: dn4a

    展开全文
  • maven父子项目依赖构建打包 Maven项目中聚合将多个工程拆分为模块后,需要手动逐个安装到仓库后依赖才能够生效。修改源码后也需要逐个手动进行 clean 操作。而使用了聚合之后就可以批量进行 Maven 工程的安装、清理...

    maven父子项目依赖构建打包

    Maven项目中聚合将多个工程拆分为模块后,需要手动逐个安装到仓库后依赖才能够生效。修改源码后也需要逐个手动进行 clean 操作。而使用了聚合之后就可以批量进行 Maven 工程的安装、清理工作。在总的聚合工程中使用 modules/module 标签组合,指定模块工程的相对路径即可。

    1. 使用eclipse打包
    • 第一步 选中父maven项目 右键点击 => Run As => Maven install

    • 第二步 选中需要构建的项目 右键点击 => Run As => Maven build 在弹出的edit Configuration窗口输入 clean compile package 如下图所示

    示例

    • 等待执行build完毕之后,在maven项目下的target目录下将出现构建好的jar。第二次构建时如果依赖项目有变动时只需将依赖项目清理并安装,然后构建需要打包的项目即可。
    1. 上面的方法每次打包的时候每次都要先把依赖的包先安装之后才能打包项目,下面使用命令行的方式如果有依赖包就先将依赖包打包然后在打包当前项目,只需要异步即可完成。
    • WIN+R输入cmd 回车,cd 到项目的父目录下面,执行密令 mvn -pl 【要打包的项目】 -am clean compile package 等maven 运行结束之后即可看见打包好的项目在target目录下。
      示例2
      示例3
    • 如果出现这个No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?错误,是jdk的配置不正确。mvn打包需要jdk的环境,而它自己没有找到jdk的配置目录,所以就报错.使用mvn -version 发现runtime: C:\Program Files\Java\jre1.8.0_241指向的是jre所以不对。
    C:>mvn -version
    Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
    Maven home: D:\Program Files\apache-maven-3.6.3\bin\..
    Java version: 1.8.0_241, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jre1.8.0_241
    Default locale: zh_CN, platform encoding: GBK
    OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
    
    • 使用命令 set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_241(此处为你的Jdk所在),重新运行命令ok.

    • 这样每次重启电脑之后又得重新设置,非常不方便。对于环境变量的设置一般情况下可以正常运行,如果出现找不到jdk的情况,请检查maven是否使用的是用户的环境变量而非系统环境变量。可在用户环境变量中配置和系统环境变相同的配置即可。

    展开全文
  • 以下描述为对问题的 抽象描述项目A 打包生成JarA,项目A依赖了Netty包和一个自己本地的JarB包打包之后JarA的 文件结构 如下:(1)JarA包的根路径下存在 JarB 和NettyJar(2)在JarA的Manifest文件中指定了 mainClass和...

    以下描述为对问题的 抽象描述

    项目A 打包生成JarA,项目A依赖了Netty包和一个自己本地的JarB包

    打包之后JarA的 文件结构 如下:

    (1)JarA包的根路径下存在 JarB 和NettyJar

    (2)在JarA的Manifest文件中指定了 mainClass和

    classpath:jarB.jar nett-all.jar

    这样配置之后 运行jarA ,按理来说 jarA都能够根据classpath 找到JarB 和NettyJar ,然后使用相关依赖包中的类。

    JarA的mainClass 的main方法实现非常简单public static void main(String[] args) {

    System.out.println(ChannelHandler.class.getName());//测试是否能够找到Netty Jar

    System.out.println(Person.class.getName());// 测试能否找到本地Jar

    }

    执行 java -jar jarA.jar 会输出ChannelHandler的全限定类名,但是报错提示找不到Person类。

    问题: Person类定义在jarB 包中,查看JarA 包中确实存在jarb,打开jarb 里面确实也存在Person类, 为什么程序会提示找不打Person类?

    Jar包文件,下载后在本地直接运行 java -jar 就可以 看到错误提示

    链接: https://pan.baidu.com/s/1YNxM... 提取码: dn4a

    展开全文
  • 1、pom文件配置1.1 添加maven-dependency-plugin插件用于将引用的jar包拷贝到指定的路径,便于后续tomcat启动指定依赖路径org.apache.maven.pluginsmaven-dependency-plugincopypackagecopy-dependencies${project...

    1、pom文件配置

    1.1 添加maven-dependency-plugin插件用于将引用的jar包拷贝到指定的路径,便于后续tomcat启动指定依赖包路径

    org.apache.maven.plugins

    maven-dependency-plugin

    copy

    package

    copy-dependencies

    ${project.build.directory}/lib

    使用这个插件构建完之后的目录结构多了一个lib目录(即上述配置的outputDirectory指定的路径),里面是依赖的jar包:

    a630334c4002dcb42e990e550003db61.png

    b93341c250df9c90a4c27604f8c4e9e1.png

    1.2 添加maven-war-plugin插件

    org.apache.maven.plugins

    maven-war-plugin

    %regex[WEB-INF/lib/(commons-).*.*.jar]

    上述构建配置后打出的war包就会去除掉除war包里/WEB-INF/lib/下面相应的jar包,使得发布包大小变小,加快上传服务器速度,如下图,加压war包,查看WEB-INF/lib目录,没有包含commons开头的jar包,说明已经去除掉了:

    a129c94999e2d294c5743b897a6ac224.png

    原先war包里的结构是包含很多commons开头的jar,如下图:

    681340c332f4226d654b304c11b1985f.png

    按照上述思路我们就可以将lib下的所有jar都去掉,去掉依赖jar以后就可以通过配置tomcat引用外部lib路径来部署项目了

    附注:

    若存在不同版本依赖:比如项目A依赖Y库的1.0版本,项目B依赖Y库的2.0版本,那么可能会出现版本依赖冲突(两个版本不兼容的情况下),解决方案:

    1、能做到版本一致就保持使用同一个版本,尽可能保证多个项目使用同一个库的版本一致

    2、让项目各自依赖所需的版本并打进war包中,把其他同版本的jar包放在同一个共享包下

    测试发现依赖在查找时从上往下找,匹配到就用第一个,如下图会使用comm-0.0.1.jar版本的

    c67e2942117eb848b3a891cd0593368e.png

    展开全文
  • 有时候maven仓库没有的jar包,我们需要从本地址指定文件路径并且指定scope为system来引入依赖。默认的,assemble插件是不会把本地依赖的jar包打包进去的。 <dependency> <groupId>...
  • maven打包加入本地jar

    2020-05-22 13:56:59
    maven项目在开发的时候,有时候,并不是所有的依赖都可以在远程仓库能够获取到,只能是在一些网站下载没有推到公共仓库的jar文件,然后加入到工程的buildpath中,在本地开发运行,不会有问题,但是最后打包部署的...
  • 1、pom文件配置1.1 添加maven-dependency-plugin插件用于将引用的jar包拷贝到指定的路径,便于后续tomcat启动指定依赖路径org.apache.maven.pluginsmaven-dependency-plugincopypackagecopy-dependencies${project...
  • Maven-Scope依赖作用域

    2019-08-04 16:41:52
    1. compile 在编译、运行、测试、打包都有效 2. provided 编译、测试时有效,运行、打包无效 3. test 仅在测试时有效 ...不推荐使用,使用system作用域不会去本地仓库寻找依赖,要指定本地路径 ...
  • maven打包jar到指定路径和因为test文件导致项目启动失败 问题描述:在使用maven打包项目的时候,因为涉及到项目需要用shell脚本自动完成打包运行的操作,并且项目运行所需要依赖项目src同级目录下面的文件,所以需要...
  • springboot打包时,如何不将jar依赖也打进去? <groupId>org.springframework.boot <artifactId>spring-boot-maven-plugin <fork>true</fork> <!-- hot deploy --> <includes> <!-- exclude third part...
  • 将需要引入的项目使用maven打包(jar包): 项目根目录cmd: mvn clean package 在接收项目的pom中复制上述jar包pom内部的 groupId, artifactId 以及 version ,并指定scope为system 找到打包好的jar包,拷贝其在...
  • 当我将web工程打包时,maven会将commons-collections-3.1.jar 和commons-collections-2.1.jar都拷贝进WAR包。 如何只让maven只将 commons-collections-3.1.jar拷贝到war包中去? [b]问题补充:[/b] 谢谢,...
  • maven依赖范围

    2019-09-28 14:17:58
    system范围依赖与provided类似,但是你必须显式的提供一个对于本地系统中JAR文件的路径,需要指定systemPath磁盘路径,system依赖不推荐使用。 provided 编译与测试,会被打包。 runtime 表示运行时提供依赖范围。即...
  • MAVEN打包插件

    2019-11-15 11:13:52
    打包(jar)插件,设定 MAINFEST .MF文件的参数,比如指定运行的Main class、将依赖的jar包加入classpath中等等,首先我们明确一点的是maven 插件功能:compile、package、deploy…都是在${project.build.directory ...
  • 有时候maven仓库没有的jar包,我们需要从本地址指定文件路径并且指定scope为system来引入依赖。默认的,assemble插件是不会把本地依赖的jar包打包进去的。 <dependency> <groupId>*</groupId> ...
  • 如果对maven不会用甚至不知道是什么的话,建议先看看下面几篇,看完,相信你会有所启发,并会对项目进行一个完整的依赖构建-打包测试-部署发布 开发过javaweb项目并发布过的兄dei知道,普通的war包放到tomcat里之后...
  • Java向将指定文件(含文件列表)或者指定路径下目录打包成zip格式运行环境pom依赖测试方法测试效果 运行环境 1、springboot 2.2.x 2、maven 3.5.4 pom依赖 <!--zip压缩依赖--> <dependency> <...
  • 我们的目的是实现源码和依赖分离,也就是在打包的时候需要将源码和依赖分开,这时候我们需要先借助maven-dependency-plugin插件在打包前将依赖复制到一个路径a,然后打包的时候指定classpath就是我们之前复
  • compile(默认) 表示被依赖项目需要参与当前项目的编译。打包的时候通常需要包含...从本地文件系统拿,必需配合systemPath(直接指定本地路径)属性使用,示例:<systemPath>${project.basedir}/src/main/resources
  • maven

    2016-04-07 19:44:48
    maven的常用的依赖可直接配在parent的pom中 这样底层项目都自动继承依赖,如果不想这么做还有个depencymanager 子模块可指定继承。 relativepath路径默认为../若是文件路径有跨文件夹,需要对应parent的pom路径
  • 背景 一般多个模块项目,只想打某个具体的包,而与其无关的则排除不做任何构建操作。 eg:demo-web和demo-app是...2. 指定模块打包方式 # -pl参数,代表要构建的列表,格式 -pl 路径:包名,因为是projects list,如果...
  • Maven注意事项

    2017-08-07 23:31:00
    Maven好处:1、依赖管理:对jar包统一管理2、项目构建:项目编码完成后,对项目进行编译、测试、打包、部署,实现项目一键发布1.配置环境变量 注意:maven工具必须有jdk环境。并且:jdk的环境变量key 必须是:JAVA_HOME ...
  • 1.概述 在平时的开发中,有一些Jar包在仓库没有...配置Jar的dependency,包括groupId,artifactId,version三个属性,同时还要包含scope和systemPath属性,分别指定Jar包来源于本地文件,和本地文件的所在路径。 <d
  • maven window下安装包

    2018-11-01 14:33:54
    第10章:使用Maven进行测试/10.5 动态指定要测试的类/10.5.1 指定若干个类 第10章:使用Maven进行测试/10.5 动态指定要测试的类/10.5.2 *模糊匹配 第10章:使用Maven进行测试/10.6 包含或者排除指定测试用例/10.6.1 ...
  • 环境需要 名称 版本 说明 ...Maven apache-maven-3.3.9 ...将下载好的Maven解压到指定目录,并复制指定路径! 进入 系统管理 ==&gt; 全局工具配置 经过上面的配置,Maven就配置完成了! ...
  • 浅析maven的pom.xml文件

    2019-02-15 23:48:43
    文章目录maven 仓库maven的生命周期maven常用的命令pom.xml文件scope:maven依赖范围设置exclusion:排除依赖传递...自定义项目的编译与打包resources:指定配置文件路径plugins:给出构建过程中所用到的插件plugi...
  • Maven】scope属性

    2019-03-15 02:24:59
    Scope指定依赖关系的范围,用于限制依赖关系的传递性及影响各个构建任务的类路径。 详细介绍 scope依赖范围 范围 说明 使用场景 compile 默认,编译、运行、测试、打包,可传递 provided 编译、运行、...
  • java程序打包发布

    千次阅读 2016-08-02 16:38:52
    java程序打包发布,利用IDE或者maven打包。 调用java -cp 命令指定classpath的路径: -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;”
  • maven】mvn 多模块构建 参数

    千次阅读 2019-05-13 23:48:57
    现在的项目多模块越来越流行,下对于多模块的项目,有时我们希望只构建其中的一个或者几个模块,如果直接进入...-pl:指定打包的模块,可以用路径也可以用坐标,如果父项目同时是父目录,那么进入父目录下,直接“...
  • 先说一说普通的java项目依赖外部文件,在扩展到spark集群上。 单节点: maven项目,代码中依赖一...所以把mmdb文件放到了项目的resource里面,通过maven打包后,jar包里面存在mmdb文件,在代码中使用如下代码可以...

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

maven打包指定依赖路径