Maven依赖更新

目录

  • 一、Maven基础
      • 如何安装Maven?
      • 什么是Maven?
      • Maven的生命周期
  • 二、Maven进阶
      • scope属性
      • 保持依赖包为最新
      • resources文件夹不被打包
      • 将依赖的jar包打入
      • maven打包遇到问题如何查找
      • maven打包遇到依赖冲突
      • Maven打包遇到Base64相关问题或者找不到相关的rt.jar包
      • 项目命名准则
      • 手动添加Maven依赖
  • 三、Maven排错
      • IDEA与Maven版本不合
      • Duplicate zip entry
  • 参考网址

一、Maven基础

如何安装Maven?

史上最详细的Maven安装与配置 我看了下,的确是全网最细的博主

Maven下载地址

什么是Maven?

​ 一种项目管理工具,让你方便的管理各种依赖,与之类似的还有Gradle

Maven的生命周期

LifeCircle
clean
validate
compile
test
package
verify
install
site
deploy

二、Maven进阶

scope属性

Maven 项目可以分为三个阶段:编译,测试,运行。

scope 解释 作用
compile(default) 依赖参与项目的编译,测试,运行阶段。项目打包之后将会包含该依赖 所有使用compile的依赖都会被打入jar包
provided 依赖仅参与项目编译,测试的阶段 意味着你需要自行导入依赖
runtime 依赖仅参与项目测试,运行阶段。 不参与编译阶段
test 依赖仅参与测试阶段的工作。典型的例子为 junit。
system system 与 provided 范围一致,只不过 system 需要使用 systemPath 属性指定本地路径,而 provided 将会从 Maven 仓库拉取。
import

Maven的scope属性

保持依赖包为最新

<dependency>
  <groupId>wonderful-incgroupId>
  <artifactId>dream-libraryartifactId>
  
  <version>RELEASEversion>
  
  <version>LATESTversion>
dependency>

How do I tell Maven to use the latest version of a dependency? - stackoverflow

如何跳过test阶段,即test中的代码不会被打入jar包

在右侧的maven中,找到一个蓝色⚡符,鼠标移到下面,显示Toggle ‘Skip Tests’ Mode,很多打包失败的情况,先试试排除掉test文件夹下的代码,因为如果某个项目是开源的,基本都是多人开发,test中的某些东西编译不一定保证正确。

resources文件夹不被打包

    
    <build>
        <resources>
            <resource>
                <directory>src/main/resourcesdirectory>
                <includes>
                    <include>**/**include>
                includes>
                <filtering>truefiltering> 
            resource>
        resources>
    build>

将依赖的jar包打入

[maven 打成可运行jar_qeiwang的博客-CSDN博客]()

maven打包遇到问题如何查找

1.在IDEA中,File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven

2.勾选Print exception stack traces ,并且Output level 选择为Debug级别。

这样在maven打包时,就会输出最详细的信息,供你查询。

maven打包遇到依赖冲突

当maven打包遇到了依赖冲突时,要找准,是什么包遇到了依赖冲突,此时需要利用maven打包遇到问题如何查找去查找包名。

1.找到包名

2.确定要排除的包以及版本

3.在其父依赖中,进行排除。

比如


		<dependency>
            <groupId>com.alibaba.nacosgroupId>
            <artifactId>nacos-clientartifactId>
            <version>1.1.0version>
            <exclusions>
                <exclusion>
                    <groupId>com.alibabagroupId>
                    <artifactId>fastjsonartifactId>
                exclusion>
            exclusions>
        dependency>

Maven打包遇到Base64相关问题或者找不到相关的rt.jar包

com…internal相关jar包问题

遇到这个问题,一般是涉及到了一些加密算法,而这些加密算法是sun公司的私有

项目命名准则

好的项目命名将使你快速了解这个jar包的含义,请参考以下方式

    <version>${base.version}.${yourSdk1.version}.${yourSdk2.iterations}version>

    <properties>
        <maven.compiler.source>6maven.compiler.source>
        <maven.compiler.target>6maven.compiler.target>
        <base.version>11base.version>
        <yourSdk1.version>1.3yourSdk1.version>
        <yourSdk2.version>${base.version}.${yourSdk1.version}.1yourSdk2.version>
    properties>

手动添加Maven依赖

手动导入Maven依赖

以下面的Maven依赖为例

    <dependency>
        <groupId>org.apache.phoenixgroupId>
        <artifactId>phoenix-coreartifactId>
        <version>4.13.2-cdh5.11.2version>
        <scope>providedscope>
    dependency>

mvn install:install-file -Dfile=F:/Projects_zbDependency/project-jdbcProxy/jdbc-proxy-phoneix/lib/phoenix-core-4.13.2-cdh5.11.2.jar -DgroupId=org.apache.phoenix -DartifactId=phoenix-core -Dversion=4.13.2-cdh5.11.2 -Dpackaging=jar

三、Maven排错

IDEA与Maven版本不合

当版本不和,可能导致以下错误,需要查看日志解决,你可以选择升级IDEA或降级Maven

Unable to import maven project: See logs for details

IDEA 2019.1.3 与 Maven3.6.3不合

IDEA版本与MAVEN版本对应关系

Duplicate zip entry

Duplicate zip entry问题解决

参考网址

1.Maven Repository Maven中央仓库

你可能感兴趣的:(maven,java,junit)