详解maven的install的作用

一,使用eclipse

1,maven的install可以将项目本身编译并打包到本地仓库,这样其他项目引用本项目的jar包时不用去私服上下载jar包,直接从本地就可以拿到刚刚编译打包好的项目的jar包,很灵活,避免每次都需要重新往私服发布jar包的痛苦;

2,修改服务端比如manage层和dao层的项目的时候如果eclipse没有自动编译,则在调试的时候容易出很奇怪的错误,就是明明代码已经改好了,但是debug的时候还是在报错,这就是没有项目没有编译完成造成的,看到的改好的代码没有变成class,因此,服务端的文件改动之后如果发现没有效果的时候要记得问题可能是没有编译,这时候可以使用maven的install命令编译一下;

3,install有时候会报错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin...,这种情况下可以检查项目里有没有出现编译错误,如果没有,就检查一下pom文件中surefire的配置;参考如下:

<plugins>
  <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
   <source>1.6</source>
   <target>1.6</target>
   <encoding>UTF-8</encoding>
  </configuration>
  </plugin>

  <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.18.1</version>
  <configuration>
   <systemProperties>
   <property>
    <name>log4j.configuration</name>
    <value>log4j.properties</value>
   </property>
   </systemProperties>
   <skipTests>false</skipTests>
  </configuration>
  </plugin>

如果配置没有问题的话,一般可以从日志中找到bug出现的原因了。

二,使用idea

使用idea可以很方便创建project和module,但是修改各个module的版本的时候,会遇到import报错的情况,这就是maven仓库中没有对应的包,仍然需要使用到install,注意要使用lifecycle里面的install,这样就可以将已有的module打包到maven仓库,再进行修改版本号,不会影响项目里的其他module

maven package与maven install命令的区别

在项目中经常会发生,一个子项目修改了但是其他有依赖该子项目的项目却依赖不到,于是就了解一下maven 一些命令的含义

1. maven install:打包好的 jar 包会安装到本地的 maven 仓库中,使用的配置是默认的配置,供其他项目使用。 

2.maven package 指定参数打包:clean package -Dmaven.test.skip=true -Pprod 这种方式就是指定了打包的参数,并且打包后的文件存放到项目的 target 目录下。

总结:

如果子项目之间的工程,发生改动,改动的子项目要进行maven install,然后需要调用该子项目的子项目进行maven package

最简单的方式就是父工程进行maven install

到此这篇关于详解maven的install的作用的文章就介绍到这了,更多相关maven install内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Maven install 报错"程序包不存在"问题的解决方法

    概述 在mvn clean install时,控制台各种报错,大概有: java:[8,52] 程序包com.xxx不存在 java:[98,27] 找不到符号 符号: 类 XXX 位置: 类XXX [ERROR] COMPILATION ERROR : Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure  at org.apache.maven.plugin.c

  • 理解maven命令package、install、deploy的联系与区别

    我们在用maven构建java项目时,最常用的打包命令有mvn package.mvn install.deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)的功能,但这三个命令还是有区别的.下面通过分别执行这三个命令的输出结果,来分析各自所执行的maven的生命周期. mvn clean package mvn clean install mvn clean deploy(忽略最后的BUILD FAILURE) 通过三个命令的输出我们可以看出三者的区别在于包函的mave

  • 基于maven install 没反应的解决方法

    今天遇到一个很坑的问题,打开eclipse工作空间里面的项目全部报错. 执行maven 的任何命令都没有反应,控制台也没任何输出. 点击maven update project 提示 the chosen operation is not currently available (所选操作目前不可用) 折腾了好几个小时才解决了. 方案一: 首先 delete 掉所有的项目(注意不要删除源码) 重新启动 eclipse 重新导入项目 这样maven就可以恢复使用了 方案二: 替换工作空间中 \.m

  • 详解maven的install的作用

    一,使用eclipse 1,maven的install可以将项目本身编译并打包到本地仓库,这样其他项目引用本项目的jar包时不用去私服上下载jar包,直接从本地就可以拿到刚刚编译打包好的项目的jar包,很灵活,避免每次都需要重新往私服发布jar包的痛苦: 2,修改服务端比如manage层和dao层的项目的时候如果eclipse没有自动编译,则在调试的时候容易出很奇怪的错误,就是明明代码已经改好了,但是debug的时候还是在报错,这就是没有项目没有编译完成造成的,看到的改好的代码没有变成class

  • 详解Maven私服Nexus的安装与使用

    本文介绍了详解Maven私服Nexus的安装与使用,分享给大家,具体如下: 1.安装 1.1 安装docker并加速 yum update && yum install docker sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://y7u9p3i0.mirror.aliyuncs.com"

  • 详解Maven多模块打包遇到的问题解决方法

    项目描述: springboot+springcloud+zookeeper+eureka+maven:为多模块多module的分布式架构: 项目目录结构如下 父工程为server工程,其中有多个子module工程: 1.独立子工程:db.model.quartz.redis.util.basecontroller: 2.独立功能模块:dao.service.controller: 其中dao.service.controller分别依赖db.model.quartz.redis.util.ba

  • 详解Maven项目缺少Maven Dependencies解决方法总结

    一.今天搭建了一个maven项目,在pom.xml文件引入依赖后,发现项目结构中没有Maven Dependencies文件(下图),但是在java Build Path中又可以找到Maven Dependencies文件(如下图): 但是,pom.xml文件中添加的依赖jar包也不会自动下载到项目中,update Project也是一样,于是是网上查找了很多方法,尝试后都发现没有用,最终,查看自己的pom.xml文件,发现是在依赖前面写了<dependencyManagement>这个标签(

  • 详解Maven profile配置管理及激活profile的几种方式

    为了实现不同环境构建的不同需求,这里使用到了 profile.因为 profile 能够在构建时修改 pom 的一个子集,或者添加额外的配置元素.接下来介绍 Maven 中对 profile 的配置和激活. 针对不同环境的 profile 的配置 为了体现不同环境的不同构建,需要配置好不同环境的 profile,代码如下: <profiles> <profile> <id>dev_evn</id> <properties> <db.driv

  • 详解maven BUILD FAILURE的解决办法

    问题描述 在使用IDEA的maven创建项目时总是失败,错误信息如下截图所示: 从图中可以看到是maven出了问题,在控制终端中执行maven help:system命令,测试能否正常build项目,执行错误信息如下所示: 尝试的解决办法: 删除C:\user\用户名.m2文件夹下的repository文件夹,选择maven–>clean–>install,重新build项目.(无效) 删除原有的maven文件夹,官网下载最新的maven包并进行相关配置.(无效) 修改.m2和maven\co

  • 详解Java中@Override的作用

    详解Java中@Override的作用 @Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1.可以当注释用,方便阅读: 2.编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错.例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法. 举例:在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性. @Overr

  • 详解 maven的pom.xml用<exclusion>解决版本问题

    详解 maven的pom.xml用<exclusion>解决版本问题 用maven管理库依赖,有个好处就是连同库的依赖的全部jar文件一起下载,免去手工添加的麻烦,但同时也带来了同一个jar会被下载了不同版本的问题,好在pom的配置里面允许用<exclusion>来排除一些不需要同时下载的依赖jar . 比如配置struts-core,它会同时下载javassist和asm相关的jar,但版本又不够新,这时可以排除它们: <!-- Struts2 --> <dep

  • 详解Java中hashCode的作用

    详解Java中hashCode的作用 以下是关于HashCode的官方文档定义: hashcode方法返回该对象的哈希码值.支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表. hashCode 的常规协定是: 在 Java 应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是对象上 equals 比较中所用的信息没有被修改.从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致. 如果根据

  • 详解 Linux 常用目录的作用

     详解 Linux 常用目录的作用 一 常用一级目录 注意: 1.根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令的. 2.bin目录下的命令时任何用户都能执行,sbin目录下的命令只有超级用户才能执行. 3.media用来挂载光盘,misc挂载磁带机,mnt挂载U盘.它们都是空目录. 4.proc和sys目录不能直接操作,这两个目录保存的是内存挂载点. 5.可以在家目录root或home,以及tmp目录下随便放内容. 二 实战 [root@localh

随机推荐