精华内容
下载资源
问答
  • 解决maven工程jar包冲突的三种方案

    千次阅读 2019-07-25 15:21:29
    <?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...
    <?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>com.itheima</groupId>
      <artifactId>maven_day02_1</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>war</packaging>
    
    
      <!--maven工程要导入jar包的坐标,就必须要考虑解决jar包冲突。
          解决jar包冲突的方式一:
          第一声明优先原则:哪个jar包的坐标在靠上的位置,这个jar包就是先声明的。
          先声明的jar包坐标下的依赖包,可以优先进入项目中。
    
          maven导入jar包中的一些概念:
          直接依赖:项目中直接导入的jar包,就是该项目的直接依赖包。
          传递依赖:项目中没有直接导入的jar包,可以通过项目直接依赖jar包传递到项目中去。
    
          解决jar包冲突的方式二:
          路径近者优先原则。直接依赖路径比传递依赖路径近,那么最终项目进入的jar包会是路径近的直接依赖包。
    
          解决jar包冲突的方式三【推荐使用】:
          直接排除法。
          当我们要排除某个jar包下依赖包,在配置exclusions标签的时候,内部可以不写版本号。
          因为此时依赖包使用的版本和默认和本jar包一样。
          -->
        <!-- 统一管理jar包版本 -->
        <properties>
          <spring.version>5.0.2.RELEASE</spring.version>
          <slf4j.version>1.6.6</slf4j.version>
          <log4j.version>1.2.12</log4j.version>
          <shiro.version>1.2.3</shiro.version>
          <mysql.version>5.1.6</mysql.version>
          <mybatis.version>3.4.5</mybatis.version>
          <spring.security.version>5.0.1.RELEASE</spring.security.version>
        </properties>
    
        <!--
        maven工程是可以分父子依赖关系的。
        凡是依赖别的项目后,拿到的别的项目的依赖包,都属于传递依赖。
        比如:当前A项目,被B项目依赖。那么我们A项目中所有jar包都会传递到B项目中。
        B项目开发者,如果再在B项目中导入一套ssm框架的jar包,对于B项目是直接依赖。
        那么直接依赖的jar包就会把我们A项目传递过去的jar包覆盖掉。
        为了防止以上情况的出现。我们可以把A项目中主要jar包的坐标锁住,那么其他依赖该项目的项目中,
        即便是有同名jar包直接依赖,也无法覆盖。
        -->
        <!-- 锁定jar包版本 -->
        <dependencyManagement>
          <dependencies>
            <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-context</artifactId>
              <version>${spring.version}</version>
            </dependency>
            <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-web</artifactId>
              <version>${spring.version}</version>
            </dependency>
            <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-webmvc</artifactId>
              <version>${spring.version}</version>
            </dependency>
            <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-tx</artifactId>
              <version>${spring.version}</version>
            </dependency>
            <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-test</artifactId>
              <version>${spring.version}</version>
            </dependency>
            <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>${mybatis.version}</version>
            </dependency>
          </dependencies>
        </dependencyManagement>
    
        <!-- 项目依赖jar包 -->
        <dependencies>
          <!-- spring -->
          <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.6.8</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
          </dependency>
          <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
          </dependency>
          <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
          </dependency>
          <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
          </dependency>
          <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
          </dependency>
          <!-- log start -->
          <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
          </dependency>
          <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
          </dependency>
          <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
          </dependency>
          <!-- log end -->
          <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
          </dependency>
          <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
          </dependency>
          <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
            <type>jar</type>
            <scope>compile</scope>
          </dependency>
          <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.2</version>
          </dependency>
          <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${spring.security.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${spring.security.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>${spring.security.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>${spring.security.version}</version>
          </dependency>
          <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.9</version>
          </dependency>
          <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
          </dependency>
        </dependencies>
        <!-- 添加tomcat7插件 -->
        <build>
          <plugins>
            <plugin>
              <groupId>org.apache.tomcat.maven</groupId>
              <artifactId>tomcat7-maven-plugin</artifactId>
              <version>2.2</version>
            </plugin>
          </plugins>
        </build>
    </project>
    

       
        工程和模块的区别:
        工程不等于完整的项目,模块也不等于完整的项目,一个完整的项目看的是代码,代码完整,就可以说这是一个完整的项目
        和此项目是工程和模块没有关系。

        工程天生只能使用自己内部资源,工程天生是独立的。后天可以和其他工程或模块建立关联关系。
        模块天生不是独立的,模块天生是属于父工程的,模块一旦创建,所有父工程的资源都可以使用。

        父子工程直接,子模块天生集成父工程,可以使用父工程所有资源。
        子模块之间天生是没有任何关系的。

        父子工程直接不用建立关系,继承关系是先天的,不需要手动建立。

        平级直接的引用叫依赖,依赖不是先天的,依赖是需要后天建立的。
        

    展开全文
  • Maven项目pom文件覆盖jar包版本

    千次阅读 2020-05-13 18:00:27
    pom.xml中引入一下代码会覆盖引入jar的版本 <dependencyManagement> <dependencies> <dependency> <groupId>xxx</groupId> <artifactId>xxx</artifactId> <...

    pom.xml中引入一下代码会覆盖引入jar的版本

    <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>xxx</groupId>
                    <artifactId>xxx</artifactId>
                    <version>xxx</version>
                    <scope>xxx</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    

    比如需要在Springboot项目中使用spring-messaging 这个5.2.6.RELEASE版本的的jar信息。原来SpringBoot中已存在4.3.4这个版本。那么我们只需要这么做即可

    <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-messaging</artifactId>
                    <version>5.2.6.RELEASE</version>
                    <scope>compile</scope>
                </dependency>
    
            </dependencies>
    
        </dependencyManagement>
    
    展开全文
  • mybatis的mavenjar,可以方便的使用maven插件,一键生成sql
  • 1、既然我们是使用mavenjar包肯定要在项目的 pom.xml 文件中添加打包类型啦 <groupId>com.viewstar</groupId> <artifactId>TEST-SERVICE</artifactId> <version>1.0-SNAPSHOT</...

    1、既然我们是使用maven打jar包肯定要在项目的 pom.xml 文件中添加打包类型啦

    <groupId>com.viewstar</groupId>
    <artifactId>TEST-SERVICE</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    2、在<build>中添加 加粗部分 代码,其他部分根据项目而定,以下是我的代码 :

    <build>
        <finalName>cms-service</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>utf-8</encoding>
                    <useDefaultDelimiters>true</useDefaultDelimiters>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/resources/</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

    3、选择右侧的 Maven 

    4、由于我这一个Idea引用了多个项目,需要找到要打包的项目, 按照以下顺序执行即可。

    5、出现以下结果说明打包成功

    6、使用 java -jar xxxx.jar 命令运行jar包就 ok了。

    正常流程下是这样的,但是我踩过坑啊,怎么只写这个这么简单呢?

    我之前打包的时候碰到以下提示,至于解决过程我就呵呵呵不多描述了, 只写最后怎样解决该问题的

    先找到本地资源库的这两个目录,把标注红色文件夹进行删除,在执行第三步即可

    以上是我打包以及打包过程中碰到的问题, 欢迎大家一起来探讨。

    展开全文
  • Mavenjar包剔除resources下的文件

    千次阅读 2020-01-17 10:35:32
    粘贴代码到pom.xml文件 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar...

    在这里插入图片描述

    粘贴代码到pom.xml文件

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.0.2</version>
                    <configuration>
                        <excludes>
                            <!--清理resources 下的 static文件夹和 templates-->
                            <exclude>/static/**</exclude>
                            <exclude>/templates/**</exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    

    执行Maven命令package

    在这里插入图片描述

    可以看到工程目录中没有static和resources文件夹了

    在这里插入图片描述

    展开全文
  • Mavenjar包冲突是开发过程中比较常见而又令人头疼的问题,我们需要知道 jar包冲突的原理,才能更好的去解决jar包冲突的问题。本文将从jar包冲突的原理和解决两个方面阐述Mavenjar包冲突的解决办法。 一、Maven...
  • mavenjar包的三种方式

    千次阅读 2018-08-29 19:40:12
    Maven打包的三种方式   Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in xxx.jar&...要想jar包能直接通过java -jar xxx.j...
  • Mavenjar包导入项目的两种方法: 1.jar包打入本地仓库; 2.jar包放到项目中,maven读取打包
  • Maven替换jar包

    千次阅读 2013-10-10 18:08:17
    初学Maven,整理一下有关Maven的技术点。 我用的是在eclipse里安装...今天是要改api的接口,我们的项目引用了几个项目的生成的jar包,当改了它所引用的jar包里,此时需要将此jar包更新上去,由于是maven管理jar包...
  • 使用Maven 生成jar包的两种方式

    千次阅读 2017-01-24 10:22:33
    Maven可以使用mvn package指令对项目进行打包,如果使用java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in xxx.jar"(没有设置...要想jar包能直接通过java -jar xxx.jar运行,需要满足: 1
  • 1.pom文件新增 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source...
  • maven打完jar包之后,默认放置位置是target目录 有时候项目需要,如何将jar包放置到指定的目录呢? 方式一:通过maven-jar-plugin指定outputDirectory输出路径 可以排除某些配置文件,没有文件夹的话会自动创建!...
  • Jar文件(Java归档,英语:Java Archive)是一种软件包文件格式,以流行的 ZIP 文件格式为基础。不仅用于压缩和发布,还用于部署和封装库、组件和插件程序以便开发Java平台应用软件或库。
  • maven工程真正的jar包放置在仓库中,项目中只用放置jar包的坐标。 2、一键构建: maven自身集成了Tomcat插件,可以对项目进行编译,测试,打包,安装和发布等操作。 仓库的种类:本地仓库,远程仓...
  • maven打包jar文件配置

    千次阅读 2019-06-01 22:59:03
    如何将工程打包成可直接运行的jar?即java -jar xxx.jar能够直接运行 ... 2)如果依赖了第三,第三也必须打包进来 MANIFEST.MF(jar运行引导文件)文件信息: Manifest-Version: 1.0 Built-By: kzzClass-P...
  • 1.首先去apache下载Maven包 http://maven.apache.org/download.cgi 这里我们选择 -bin的zip,如图所示 下载下来之后,将压缩包解压,随意放个位置就行,不过需要记住放的位置的路径,因为后边会用到。我是放到了D...
  • 1、前提 Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar...要想jar包能直接通过java -jar xxx.jar运行,需要满足: 1、在jar包中的META-INF/MANIFEST.MF中指定Main-Class,这样才能确定程序的入口在
  • 如何排除掉maven引入的jar包里的HttpHost类冲突导致,jar:file:/D:/work/maven_repository/com/pc/inceptor/1.0/inceptor-1.0.jar!/org/apache/http/HttpHost.class jar:file:/D:/work/maven_repository/org/apache...
  • 在上传第三方jar包到私服环境时,第一次上传成功后,突然发现上传的jar包有问题,但是因为已经指定了版本号,并且是release版本的jar包,因为不想更换版本号,所以再重复上传正确的jar包,就会出现如下错误: ...
  • jar包A引了M-0.1版 jar包B引了M-0.2版 这时两个M都会引进路径,可能会有冲突 如何解决呢 方法一:使用exclusion标签 从A中排除M 或者从B中排除M <dependency> <groupId>net.tomjerry</groupId...
  • maven依赖jar包时版本冲突的解决

    万次阅读 多人点赞 2017-09-16 19:57:47
    所以,先声明自己要用的版本的jar包即可。 2、路径近者优先: 直接依赖优先于传递依赖,如果传递依赖的jar包版本冲突了,那么可以自己声明一个指定版本的依赖jar,即可解决冲突。 3、排出原则: 传递依赖冲突时...
  • maven 打包可运行jar包

    万次阅读 2018-02-05 11:13:17
    Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in xxx.jar&...要想jar包能直接通过java -jar xxx.jar运行,需要满足: 1、...
  • maven 打包可运行jar包(转)

    万次阅读 多人点赞 2018-08-08 13:53:56
    2、方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 3、方法二:使用maven-assembly-plugin插件打包 4、方法三:使用maven-shade-plugin插件打包 ——————————————...
  • 2、只打包本项目的代码,不包括依赖的jar包,并且可以直接通过java -jar xxx.jar执行(应用场景:执行时依赖的jar包存在在本jar包外部,减少jar体积) 3、打包本项目的代码,同时将依赖的jar包解压后的文件复制到本...
  • 就会覆盖A中传递过来的jar包 可能就会因为版本号而导致意外的事情 如何锁定版本 只需要在我们写dependencies处的上方 写一段 <dependencyManagement> <dependencies> <dependency> <groupId...
  • spring boot 2.0.4 maven项目打jar包启动

    千次阅读 2018-08-25 17:41:50
    在项目部署中,可以把spring boot项目打jar包部署,将前台html、js等资源也打入jar包内,启动jar就启动整个项目,本文用的spring boot版本是2.0.4。其实只需在pom.xml中plugin部分配置下。 新建了一个测试项目,...
  • maven工程要导入jar包的坐标,就必须要考虑解决jar包之间的冲突。 maven导入jar包中的一些概念: 直接依赖:项目中直接导入的jar包,就是该项目的直接依赖包。 传递依赖:项目中没有直接导入的jar包,可以通过项目...
  • scope标签就是依赖的范围!!! 在依赖声明中,scope标签指定的就是当前项目在什么情况下对目标项目有依赖。... provided:只在开发、测试阶段使用,目的是不让Servlet容器和你本地仓库的jar包冲...
  • 刚进公司,如果你拿到一个maven聚合工程,可能会发现导入工程后到处报红叉、感叹号。...比如本地仓库明明存在这个jar包,但是发现工程中还说这个jar包找不到,下面就给大家介绍几个常见的问题的解决办法...
  • maven引入外部jar包的两种方式

    千次阅读 2019-09-01 10:57:55
    一、maven使用本地jar <scope>test</scope>:实际项目打包的时候没有这个jar包 <scope>compile<...:已提供,告诉maven这个jar包未来在我的服务器中有,不需要它打包放在项目中,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,507
精华内容 11,002
关键字:

maven覆盖jar包