精华内容
下载资源
问答
  • apache-maven-3.0.4-bin版本下载,Maven是一个软件项目管理和理解工具。基于项目对象模型(POM)的概念,Maven可以从中心位置管理项目的构建,报告和文档。
  • maven应用

    2021-03-03 19:59:06
    测试maven应用能否使用(可使用cmd 指令 mvn -v如果出现maven版本代表maven配置成功) 在maven内部集成了很多插件 如jdk tomcat等。。。jdk默认版本是1.5,tomcat默认版本事6.0 真实使用时需要手动配置,jdk为1.8/...
    maven应用
    • 测试maven应用能否使用(可使用cmd 指令 mvn -v如果出现maven版本代表maven配置成功)
    • 在maven内部集成了很多插件 如jdk tomcat等。。。jdk默认版本是1.5,tomcat默认版本事6.0
    • 真实使用时需要手动配置,jdk为1.8/1.7 tomcat配置为7.0/8/0
    maven常用命令
    • mvn complie 执行成功 生成target目录 包含编译之后的.class文件和配置文件以及达成的jar包
    • mvn test 执行成功 编译测试文件
    • mvn package 执行打包命令 会在target目录中生成对应的打包的文件
    • mvn install 执行发布命令/安装命令 完成以上命令,把打包之后的文件存放到本地仓库中
    • mvn tomcat:run 执行内置服务器运行指令
    • mvn clean 清除target目录
    • mvn deploy 部署
    添加依赖
    在pom.xml文件中添加依赖  使用<dependencies>
    
    • 在idear中添加依赖有两种方式:
      • 直接在项目pom文件添加****在内部添加单个依赖,在artifactId里面输入jar名称,有会提示,没有则会爆红

    如:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
    </dependency>
    
    • 本地没有,去maven中央仓库查询所需jar包资源
      中央仓库地址:https://mvnrepository.co在这里插入图片描述在这里插入图片描述
    maven的插件配置
    • build

    • plugins

    • plugin 添加的具体的插件

      如:

      <!--配置编译器版本为1.8-->
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
          <configuration>
              <source>1.8</source>
              <target>1.8</target>
              <encoding>UTF-8</encoding>
          </configuration>
      </plugin>
    
    • configuration 插件详细信息
    依赖传递

    在开发时,配置一个jar包资源,发现jar包它还依赖于另外一个jar或者多个jar包资源,此时就出现了依赖传递现象。

    依赖冲突

    由于maven中存在依赖传递现象,会引发依赖冲突现象。

    展开全文
  • Maven应用

    2019-10-21 09:44:42
    可配置项:项目依赖 插件 执行目标 项目构建profile 项目版本 项目开发者列表 相关邮件列表信息; 处理阶段 阶段 处理 描述 validate 验证项目 验证项目是否正确且所有必须信息是可用的 compile 执行...

    POM文件

    Project Object Model(项目对象模型);
    用于描述项目如何构建,声明项目依赖;
    可配置项:项目依赖 插件 执行目标 项目构建profile 项目版本 项目开发者列表 相关邮件列表信息;

    查看默认父pom

    处理阶段

    阶段 处理 描述
    validate 验证项目 验证项目是否正确且所有必须信息是可用的
    compile 执行编译 源代码编译在此阶段完成
    Test 测试 使用适当的单元测试框架(例如JUnit)运行测试。
    package 打包 创建JAR/WAR包如在 pom.xml 中定义提及的包
    verify 检查 对集成测试的结果进行检查,以保证质量达标
    install 安装 安装打包的项目到本地仓库,以供其他项目使用
    deploy 部署 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程

    执行后面的阶段,总是依次先执行前面的阶段

    仓库

    本地仓库:第一次执行maven命令时创建,从本地仓库获取构件,如果没有,从远程仓库下载到本地仓库,然后使用本地仓库的构件,本地仓库默认在用户目录下的.m2/respository/中。对于本地仓库来说,中央仓库和远程仓库都属于远程仓库。
    中央仓库:Maven社区提供的仓库,包含了大量常用的库,不需要配置,通过网络才能访问。
    远程仓库:如果没有配置远程仓库路径,Maven在本地和中央仓库都找不到文件,就回报错。

    <repositories>
       <repository>
          <id>companyname.lib1</id>
          <url>http://download.companyname.org/maven2/lib1</url>
       </repository>
       <repository>
          <id>companyname.lib2</id>
          <url>http://download.companyname.org/maven2/lib2</url>
       </repository>
    </repositories>
    

    替换默认中央仓库
    maven安装目录下conf/setting.xml

    <mirrors>
        <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>central</mirrorOf>        
        </mirror>
    </mirrors>
    
    <repositories>  
            <repository>  
                <id>alimaven</id>  
                <name>aliyun maven</name>  
                <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
                <releases>  
                    <enabled>true</enabled>  
                </releases>  
                <snapshots>  
                    <enabled>false</enabled>  
                </snapshots>  
            </repository>  
    </repositories>
    

    插件

    Maven 生命周期的每一个阶段的具体实现都是由 Maven 插件实现的,Maven 实际上是一个依赖插件执行的框架。插件可以用来:

    创建 jar 文件
    创建 war 文件
    编译代码文件
    代码单元测试
    创建工程文档
    创建工程报告
    

    插件类型:

    类型 描述
    Build plugins 在构建时执行,在pom.xml的元素中配置
    Reporting plugins 在网站生成过程中执行,并在pom.xml元素中配置

    自定义一个插件
    New
    Project
    Maven
    Create from archetype
    maven-archetype-mojo
    在这里插入图片描述
    在这里插入图片描述
    默认生成的Mojo类简单实现了一个示例功能,它将在输出目录下创建touch.txt的文本文件,并且在里面插入一行文本。
    执行install,生成插件,在本地仓库查看
    在这里插入图片描述
    使用
    在这里插入图片描述
    在这里插入图片描述
    执行插件
    在这里插入图片描述

    快照和版本

    Maven如果从仓库下载过指定版本,那么不修改版本号,maven将不再重新下载,但是maven每次都会自动获取新的快照。

    展开全文
  • maven快照版本和发布版本

    千次阅读 2019-01-12 14:36:47
    1. 场景 一个大型的软件应用通常包含多个模块,并且...举个例子,设想一个团队开发应用的前端,项目为app-ui(app-ui.jar:1.0),而另一个团队开发应用的后台,使用的项目是data-service(data-service.jar:1.0)...

    转自:https://www.cnblogs.com/EasonJim/p/6852840.html

    1. 场景

    一个大型的软件应用通常包含多个模块,并且通常的场景是多个团队开发同一应用的不同模块。举个例子,设想一个团队开发应用的前端,项目为app-ui(app-ui.jar:1.0),而另一个团队开发应用的后台,使用的项目是data-service(data-service.jar:1.0)

    现在可能出现的情况是开发data-service的团队正在进行快节奏的bug修复或者项目改进,并且他们几乎每隔一天就要发布库到远程仓库。

    现在如果data-service团队每隔一天上传一个新版本,那么将会出现下面的问题:

    • data-service团队每次发布更新的代码时都要告知app-ui团队。
    • app-ui团队需要经常地更新他们pom.xml文件到最新版本。

    为了解决这种情况, 快照(SNAPSHOT)的概念派上了用场。

    2. 什么是快照(SNAPSHOT)

    快照(SNAPSHOT)是一种特殊的版本,指定了某个当前的开发进度的副本。不同于常规的版本,Maven每次构建都会在远程仓库中检查新的快照

    现在data-service团队会每次发布更新代码的快照到仓库中,比如说data-service:1.0-SNAPSHOT来替代旧的快照jar包。

    注意:每次更新jar包时,版本好不变,且后缀必须带上-SNAPSHOT。

    3. 项目快照(Snapshot) VS 版本(Version)

    版本(Version)的情况下,如果Maven以前下载过指定的版本文件,比如说data-service:1.0Maven将不会再从仓库下载新的可用的1.0文件。若要下载更新的代码,data-service的版本需要升到1.1

    快照(Snapshot)的情况下,每次app-ui团队构建他们的项目时,Maven将自动获取最新的快照(data-service:1.0-SNAPSHOT)。

    备注:版本(Version)存放在Release发布仓库。快照(Snapshot)存放在Snapshot快照仓库。

    注意:版本(Version)的概念,只要不带有-SNAPSHOT的关键字时,都会认为这是一个在Release发布仓库的jar包。其中在Release发布仓库的jar包命名除了具体的版本号之后还可以带上比如:1.0-Release、1.0-rc1等等的字样。

    4. 原理详解

    Maven中的仓库分为两种,Snapshot快照仓库Release发布仓库Snapshot快照仓库用于保存开发过程中的不稳定版本,Release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom.xml文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写),如下所示:

    <dependency>
        <groupId>com.jsoft.test</groupId>
        <artifactId>testcommon</artifactId>
        <version>0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    </dependency>

    Maven会根据模块的版本号(pom.xml文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。如果是快照版本,那么在mvn deploy时会自动发布到快照版本库中,而使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,Maven自动从镜像服务器上下载最新的快照版本。如果是正式发布版本,那么在mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务器上下载

    所以,我们在开发阶段,可以将公用库的版本设置为快照版本,而被依赖组件则引用快照版本进行开发,在公用库的快照版本更新后,我们也不需要修改pom.xml文件提示版本号来下载新的版本,直接Maven执行相关编译、打包命令即可重新下载最新的快照库了,从而也方便了我们进行开发。

    虽然,快照的情况下,Maven在日常工作中会自动获取最新的快照,你也可以在任何Maven命令中使用-U参数强制Maven下载最新的快照构建。命令如下:

    mvn clean package -U

    SNAPSHOT版本的依赖因为存在变更传达的透明性的优势而被赏识,甚至被“溺爱”,有很多团队索性直接使用SNAPSHOT到生产环境中,这样对于变更直接生效,很方便。但是作为技术人员的我们其实应该很严谨地看待变更传达的透明性,变更就意味着风险,透明性更是把风险彻底隐藏了起来,生产环境中存在这样的现象更是心惊胆战。例如:A-->B.1.0.3-SNAPSHOT,B对一个A使用的功能实现进行了调整,直接发布到仓库,A重新构建或许就会失败,更糟糕的是构建成功,运行时异常。这个时候A甚至完全没有代码变更就突然失败了,会带来更多的困惑。

    这也是maven经常遭人诟病的一个因素,对于同一份代码,构建结果却不具备确定性,让很多人沮丧。当然这个不完全是因为依赖的问题,也有maven插件的问题,maven之前的版本寻找插件策略的方式也存在不确定性,maven在版本2的时候,会去寻找最新的插件版本(如果没配置的话)来执行构建,经常会找到SNAPSHOT版本的插件,所以依赖了一个不稳定的插件来执行构建,不确定性就大大增加。不过maven在3版本就改变了这个策略,会寻找最新稳定版的插件来执行构建,使得构建具备了确定性,稳定性也好多了。说明maven本身也在SNAPSHOT的问题上狠狠摔了一跤。

    归根到底,这些问题的根源就是SNAPSHOT是变化的,是不稳定的,而应用(软件)依赖于变化并且不稳定的SNAPSHOT的依赖会导致自身也在变化和不稳定中,这是稳定性的一个大忌,依赖不稳定的服务或者依赖,上述的maven2的问题就是一个典型反例。

    那么什么时候使用SNAPSHOT?什么时候使用RELEASE?这个可以从他们各自的特性上来看,SNAPSHOT版本的库是一直在变化的,或者说随时都会变化的,这样虽然可以获取到最新的特性,但是也存在不稳定因素,依赖一个不稳定的模块或者库会让模块自身也变得不稳定,尤其是自身对被依赖模块的变化超出掌控的情况。即使可以掌控被依赖模块的变化,也会带来不稳定的因素,因为每次变更都有引入bug的可能性。如果这么说,那么我们是不是要摒弃SANPSHOT了呢?答案肯定是否定的。

    想象下,什么情况下,模块会一直变化或者变化比较剧烈?开发新特性的时候,所以对于团队之间协同开发的时候,模块之间出现依赖,变化会非常剧烈,如模块A依赖模块B,模块A必然需要最方便地获取模块B的特性,在开发期间,方便性比稳定性更重要。可以反证下,假设模块B使用RELEASE版本1.0.0,模块A依赖1.0.0,现在模块A出现了bug,需要修复下,那么A就要提供一个版本号1.0.1,这样所有依赖A模块都需要更新版本号,因为开发期间这种事情是如此多,所以会带来巨变。反观SNAPSHOT方案,如果模块B的版本是1.0.0-SNAPSHOT,模块A完全不需要修改版本号即可获取模块B的新特性。当开发进入预发布阶段,为了生产环境的稳定性,依赖应该是RELEASE版本,因为此时SNAPSHOT版本的模块自动获取新特性的特点恰恰会造成生产环境的不稳定性,生产环境上,稳定性重于一切。

    现在已经很明确了,在开发期间,活跃模块的版本号使用SNAPSHOT,在生产期间,依赖RELEASE版本模块。貌似,我们找到了银弹,不过这个只是理想状态,即所有的模块的版本都在自己的掌控或者间接掌控下,只有这样你才能影响对应模块的版本号。往往是理想很丰满,现实却很骨感,如果你依赖的一个模块只有SNAPSHOT版本,并且该模块也很活跃,最无助的是模块的维护人不理会你的请求,那么是否就没辙了,只能把应用构建在不稳定模块上呢?介绍一款maven插件——versions,这是一个非常强大的版本管理插件,其中有个对依赖版本加锁的特性——lock-snapshots,并且提供了参数可以控制锁定的依赖,就可以实现对特定的SNAPSHOT模块锁定版本,执行的命令如下:mvn versions:lock-snapshots -DincludesList="groupId:artifactId:type:classifier:version",执行这个命令之后,对应的版本号会变化,比如1.0.0-SNAPSHOT会变成1.0.0.20090327.172306-4,即完成了锁定,此时这个SNAPSHOT就变成了固定小版本的稳定版本,不会在变化了,也相当于正式版的功能了。当然以后也可以解锁,详细请看对应文档。

     

    参考:https://www.cnblogs.com/wuchanming/p/5484091.html

    展开全文
  • Maven应用:笔记

    2020-10-22 15:52:55
    2、使用 properties 标签定义引用的版本号。 3、使用 Maven 打包项目时跳过测试类。 1、设置整个项目统一字符集编码 项目中需要统一字符集编码,就需要设定: <project.build.sourceEncoding>UTF-8<...

    1、设置整个项目统一字符集编码。

    2、使用 properties 标签定义引用的版本号。

    3、使用 Maven 打包项目时跳过测试类。

     

    1、设置整个项目统一字符集编码

    项目中需要统一字符集编码,就需要设定:

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    完整配置的如下:

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>11</java.version>
    </properties>

     

    2、使用 properties 标签定义引用的版本号

    示例:使用 properties 标签定义 Jackson 版本号。

    (1)首先在<properties>标签中定义版本号:

    <properties>
        <java.version>11</java.version>
        <jackson.version>2.11.3</jackson.version>
    </properties>

    (2)然后在 <dependencies> 标签中添加  Jackson 的相关引用:

    <!-- Jackson依赖 -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
    </dependency>

     

    3、使用 Maven 打包项目时跳过测试类

    在<properties>标签中添加如下配置:

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <skipTests>true</skipTests> <!--打包的时候跳过测试类-->
    </properties>

     

    展开全文
  • Maven构建Web应用版本管理 Web项目的目录结构 基于Java的web项目,其标准的打包方式是WAR。一个WAR包下至少包含两个子目录:WEB-INF和META-INF。META-INF包含了一些打包元数据信息,WEB-INF下必须包含一个Web...
  • Java-Maven应用 该Java应用程序是一个简单的BankManager应用程序,具有两个类,并且不可执行。 这是项目的快照版本。 在此版本中,仅计划添加一些基本功能,如下所示:它存储基本客户信息(名称,ac#)并允许进行...
  • Maven基础应用

    2020-04-16 15:27:59
    Maven在Eclipse中创建...配置maven版本 配置本地仓库 : 设置settings.xml 2.打开Eclipse–>window–>Prefrences–>Maven---->Installations , 点击右侧的Add按钮,在弹出的窗口中,选择刚刚解压玩的...
  • 使用eclipse编译maven应用代码编译安装jdk安装maven安装espliseIDE配置esplise导入maven项目打包war 代码编译 安装jdk 版本:jdk8或jdk7 地址:...
  • 方案1在应用项目中,如果应用程序需要获取当前程序的版本号,可以读取”/META-INF/maven/${groupId}/${artifactId}/pom.properties“,获取maven生成的版本信息。当然前提用应用程序在运行时得知道自己的groupId和...
  • Maven Web应用

    2017-11-28 15:55:01
    本教程将教你如何管理使用Maven版本控制系统管理一个基于Web项目。在这里,将学习如何创建/构建/部署和运行Web应用程序: 创建Web应用程序 要创建一个简单的java web应用程序,我们将使...
  • Maven Web 应用

    2019-02-20 15:16:34
    本章节我们将学习如何使用版本控制系统 Maven 来管理一个基于 web 的项目,如何创建、构建、部署已经运行一个 web 应用。 创建 Web 应用 我们可以使用 maven-archetype-webapp 插件来创建一个简单的 Java web 应用...
  • Maven 版本管理实践

    2019-03-12 11:46:28
    一、Maven 的作用 Maven 这个词可以翻译为“知识的积累”,也可以翻译为“专家”或“内行”。Maven作为Apache组织中的一个颇为成功的开源项目,主要...这次主要讲Maven在项目版本管理中的作用。 二、使用的场景 ...
  • Maven Web 应用本章节我们将学习如何使用版本控制系统 Maven 来管理一个基于 web 的项目,如何创建、构建、部署已经运行一个 web 应用。创建 Web 应用我们可以使用 maven-archetype-webapp 插件来创建一个简单的 ...
  • 作为一名java开发,目前基本都是...而且针对大型的分布式系统,此问题尤为突出,每日新提交的代码本就可能导致系统异常,再因为发布问题,则版本的质量和稳定性都将难以控制。 持续集成就可以解决上述描述的问题,
  • ylbtech-Java-Maven-Runoob:Maven ...本章节我们将学习如何使用版本控制系统 Maven 来管理一个基于 web 的项目,如何创建、构建、部署已经运行一个 web 应用。 创建 Web 应用 我们可以使用 maven-archetype-web...
  • 2.要保证SQL服务器版本maven配置的版本一致 尽量一致吧,严谨一点总是好的,免得踩坑 3.配置Mysql服务器,会报关于时间的错误 解决方法:执行命令给MySQL服务器设置时区为东八区 mysql> set global time_...
  • chm版本Maven教程

    2018-07-25 13:44:00
    使用Maven创建Web应用程序项目 Maven POM Maven 构建生命周期 Maven 构建配置文件 Maven存储库 Maven插件 Maven创建Java项目 使用Maven构建和测试Java项目 Maven外部依赖 Maven项目文档 Maven项目模板 Maven快照 ...
  • maven 应用中的问题

    2011-03-21 11:46:02
    maven 确实是个好东西,尤其maven3,和m2eclipse,以前使用的很多bug都没了,但是个人感觉还是有一些缺憾, 1,excludes 依赖包中所有的依赖,这个好像还没办法做 2,不能更改依赖包中的版本号,比如A项目依赖B,B...
  • 打包maven项目时,它将自动在其中生成pom.properties文件,其中将包含版本,artifactId和groupId信息。 这些在运行时很方便拥有并显示给您的Web应用程序。 可以使用如下方法检索它。 public class Application { ...
  • 我们用Maven创建liferay应用(比如portlet,theme)时,常常有个版本选择,如图: 默认的“Show the last version of Archetype only” 是被选中的,这时候我们只能显示最新版本的archetype,如果我们用最新版本的...
  •   在操作系统的CMD窗口中输入以下命令检查JDK是否安装和安装的版本号(Maven3.6.0要求JDK1.7以上),如果命令没有出现错误,说明未安装JDK或命令的对应PATH变量未设置正确 java -versionorjavac -versi...
  • Apache Maven Web 应用

    2017-05-19 10:44:52
    本教程将指导你如何使用 Maven 版本控制系统来管理一个基于 Web 的工程。在此,你将学习到如何创建/构建/部署以及运行 Web 应用程序: 创建 Web 应用 建立一个简单的 Java web 应用,我们可以使用 maven-...
  • 打包maven项目时,它将自动在其中生成pom.properties文件,其中将包含版本,artifactId和groupId信息。 这些在运行时很方便拥有并显示给您的Web应用程序。 可以使用如下方法检索它。 public class Application { ...
  • JEECG(J2EE Code Generation)是一款基于代码生成器的免费开源的快速开发平台。使用JEECG可以简单快速地开发出企业级的Web应用系统。Jeecg最新源码,Maven版本
  • Maven应用场景

    千次阅读 2017-08-29 16:14:46
    maven可以进行包的依赖管理,保证jar包版本的一致性,以及可以使多个项目共享 jar包,从而能够在开发大型j2ee应用的时候,减小项目的大小,并且和ant 比起来,maven根据“约定优于配置”的特性,可以对其项目的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,558
精华内容 1,023
关键字:

maven应用版本