精华内容
下载资源
问答
  • Java包管理工具-maven

    千次阅读 2018-07-11 15:31:41
    没有使用maven的时候,我们在项目开始...maven是基于项目对象模型(POM),可以用一小段信息来描述和管理项目构建、报告和文档的软件项目管理工具。 maven项目一般的结构如下所示 src -main -java -package ...

    没有使用maven的时候,我们在项目开始就要下载各种jar包,Spring、mybatis等等。
    maven作为一个构建工具,能帮助我们标准化构建流程,有了maven之后,所有项目的构建命令都是一致的,这能避免很多学习成本。
    maven主要解决这几个问题:

    • 生成源码(如果项目使用自动生成源码);
    • 从源码生成项目文档;
    • 编译源码;
    • 将编译后的代码打包成JAR文件或者ZIP文件;
    • 将打包好的代码安装到服务器、仓库或者其它的地方;

    maven的中心思想是POM文件(项目对象模型)。POM文件是以XML文件的形式表述项目的资源,如源码、测试代码、依赖(用到的外部Jar包)等。POM文件应该位于项目的根目录下。
    通过pom.xml对jar包进行集中管理。Maven工程不用手动导jar包,通过在pom.xml中定义坐标从maven仓库自动下载,方便且不易出错。
    当执行maven命令的时候,会传入一个pom文件,maven会在pom文件的描述上进行依赖下载,执行生命周期,最后执行插件的构建任务,构建插件可以向构建阶段中增加额外的构建目标。

    POM

    POM文件描述的是构建什么。
    一个项目如果分为多个子项目,一般来讲,父项目有一个POM文件,每一个子项目都有一个POM文件。在这种结构下,既可以一步构建整个项目,也可以各个子项目分开构建。
    一个最小化的POM文件示例:

    	<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.sysuzhyupeng</groupId>
    	<artifactId>java-web-project</artifactId>
    	<version>1.0.0</version>
    	</project>
    

    modelVersion属性表示使用的POM模型的版本。选择和你正在使用的Maven版本一致的版本即可。版本4.0.0适用于Maven 2和3。
    groupId/artifactId/version代表一个项目的坐标,用于唯一定位一个项目。groupId,artifactId和version属性,在项目构建后会生成一个jar文件,位于Maven仓库的如下路径中(目录和文件名):MAVEN_REPO/com/sysuzhyupeng/java-web-crawler/1.0.0/java-web-project-1.0.0.jar
    packaging定义maven项目的打包方式,决定打包成jar或者war包(web工程)等。

    父pom

    所有的Maven pom文件都继承自一个父pom。如果没有指定父pom,则该pom文件继承自根pom。
    可以让一个pom文件显式地继承另一个pom文件。这样,可以通过修改公共父pom文件的设置来修改所有子pom文件的设置。在pom文件的起始处指定父pom

    	<parent>
            <groupId>com.taobao</groupId>
            <artifactId>parent</artifactId>
            <version>2.0.0</version>
        </parent>
    

    子pom文件的设置可以覆盖父pom文件的设置,只需要在子pom文件里指定新的设置即可。

    Maven使用

    运行Maven只需在命令行执行mvn命令即可。当执行mvn命令时,将构建周期、阶段或目标作为参数传进去,Maven就会执行它们。例如:

    	mvn install
    

    你可以向mvn命令传入多个参数,执行多个构建周期或阶段,如:

    mvn clean install
    

    该命令首先执行clean构建周期,删除Maven输出目录中已编译的类文件,然后执行install构建阶段。

    maven仓库

    Maven的本地仓库默认在你本机的用户目录下。
    Maven的中央仓库由Maven社区提供。默认情况下,所有不在本地仓库中的依赖都会去这个中央仓库查找。然后Maven会将这些依赖下载到你的本地仓库。访问中央仓库不需要做额外的配置。
    远程仓库是位于web服务器上的一个仓库,Maven可以从该仓库下载依赖,就像从中央仓库下载依赖一样。远程仓库可以位于Internet上的任何地方,也可以是位于本地网络中。远程仓库中的依赖也会被Maven下载到本地仓库中。
    可以在pom文件里配置远程仓库。将以下的xml片段放到属性之后:

    	<repositories>
    	   <repository>
    	       <id>jenkov.code</id>
    	       <url>http://maven.sysuzhyupeng.com/maven2/lib</url>
    	   </repository>
    	</repositories>
    

    依赖管理

    在dependencies属性下有两个dependency子属性,每一个dependency属性描述了一个外部依赖。

    	<dependencies>
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>4.8.1</version>
                    <scope>test</scope>
                </dependency>
        </dependencies>
    

    每一个依赖由groupId, artifactId和version来描述。这里的示例为junit组织下的4.8.1版本的junit。上面示例中的两个依赖将会被放到以下子目录中MAVEN_REPOSITORY_ROOT/junit/junit/4.8.1。
    有的时候,指定的依赖在Maven的中央仓库里没有。你可以直接下载这些依赖,然后放到Maven的本地仓库。这些依赖必须放到与groupId、 artifactId和version匹配的子目录中。用/替换所有的点(.)并且使用/分隔groupId、artifactId和version,这 就是与该依赖匹配的子目录。

    外部依赖

    Maven的外部依赖指的是不在Maven的仓库(包括本地仓库、中央仓库和远程仓库)中的依赖(jar包)。
    配置外部依赖的示例如下:

    	<dependency>
    	  <groupId>mydependency</groupId>
    	  <artifactId>mydependency</artifactId>
    	  <scope>system</scope>
    	  <version>1.0</version>
    	  <systemPath>${basedir}\war\WEB-INF\lib\mydependency.jar</systemPath>
    	</dependency> 
    

    groupId和artifactId为依赖的名称,即API的名称。scope属性为system。systemPath属性为jar文件的路径。${basedir}为pom文件所在的目录,路径中的其它部分是相对于该目录而言的。

    快照依赖

    快照依赖指的是那些还在开发中的依赖(jar包)。与其经常地更新版本号来获取最新版本,不如你直接依赖项目的快照版本。
    在pom文件的最开头(设置groupId和artifactId的地方),在版本号后追加-SNAPSHOT,则告诉Maven你的项目是一个快照版本。如:

    	<dependency>
    	    <groupId>com.sysuzhyupeng</groupId>
    	    <artifactId>java-web-project</artifactId>
    	    <version>1.0-SNAPSHOT</version>
    	</dependency>
    

    构建生命周期

    Maven有三个内嵌的构建生命周期:

    • default
    • clean
    • site

    每一个构建生命期关注项目构建的不同方面。因此,它们是独立地执行的。Maven可以执行多个生命期,但是它们是串行执行的,相互独立,就像你执行了多条独立的Maven命令。

    default生命期关注的是项目的编译和打包。clean生命期关注的是从输出目录中删掉临时文件,包括自动生成的源文件、编译后的类文件,之前版本的jar文件等。site生命期关注的是为项目生成文档。实际上,site可以使用文档为项目生成一个完整的网站。
    default生命期中有这几个值得关注:

    • validate 验证项目的正确性,以及所有必需的信息都是否都存在。同时也会确认项目的依赖是否都下载完毕。
    • compile 编译项目的源代码
    • test 选择合适的单元测试框架,对编译后的源码执行测试;这些测试不需要代码被打包或者部署。
    • package 将编译后的代码以可分配的形式打包,如Jar包。
    • install 将项目打包后安装到本地仓库,可以作为其它项目的本地依赖
    • deploy 将最终的包复制到远程仓库,与其它开发者和项目共享。

    依赖管理

    当项目A中有这样的依赖关系: A - B - C - X(1.0)和A - D - X(2.0), X是A的传递性依赖,但是这两条依赖路径上有两个版本的X,maven依赖调解的第一个原则是路径短的优先,那么2.0会被解析使用。
    在相同路径长度的情况下,在POM中依赖声明的顺序决定了谁会被解析使用。(第一声明优先原则)
    可选依赖:当A - B, B - X(可选),B - Y(可选)。依赖将不会被传递。当X和Y是两个互斥的依赖的时候,可选的依赖就起到了作用。这时候A就可以声明要依赖X或者Y。
    排除依赖:当A - B,B - C,当A不想引入C的时候,可以在声明B的时候排除依赖C

    展开全文
  • Maven项目管理工具1 Maven的核心pom.xml文件1.1 基本信息1.2 依赖1.3 配置属性1.4 构建1.5 继承1.6 聚合2 Maven常用命令3 一些知识点4 常用配置4.1 javaSE打包jar程序 1 Maven的核心pom.xml文件 1.1 基本信息 ...

    1 Maven的核心pom.xml文件

    1.1 基本信息

    标识 解释
    modelVersion Maven模型的版本,对于Maven2和Maven3来说,它只能是4.0.0
    groupId 组织id,一般是公司域名的倒写(xyz.cqulwj),或者加项目名(xyz.cqulwj.Demo01)
    artifactId 项目名称,是groupId的子项目
    version 项目的版本号,一般是三位数字,例如1.1.0
    packaging 项目打包类型,可以是jar、war、rar、ear、pom 默认jar

    其中 groupId、artifactId、version 构成项目的坐标(唯一标识)

    1.2 依赖

    标识 解释
    dependencies/Dependency 项目要使用的各种资源说明。例如mysql驱动。其中<scope>test</scope>为依赖起作用的阶段。值有compile、test、provided三种

    依赖的范围:

    —— compile test provided
    对主程序是否有效
    对测试程序是否有效
    是否参与打包
    是否参与不熟

    1.3 配置属性

    标识 解释
    properties 定义一些配置属性。如编码方式urf-8

    1.4 构建

    标识 解释
    build Maven在进行项目构建时的配置信息。如jdk版本等

    1.5 继承

    build

    1.6 聚合

    modules

    2 Maven常用命令

    命令 功能
    Mvn compile 编译主程序(当前目录生生target)
    Mvn clean 清理,删除编译生成的目录,但是仓库的包不会删除
    Mvn test-compile 编译测试程序,生成target,但是是测试程序
    Mvn test 执行测试,生成测试报告,surefire-reports,保存测试结果
    Mvn package 打包主程序,按照配置生成jar包或者war包
    Mvn install 安装主程序,把本工程打包,按照坐标安装到本地仓库
    Mvn deploy 部署主程序,打包->放到本地库->保存到私服->部署到web容器

    3 一些知识点

    3.1包管理查找逻辑:本地仓库->私有仓库->远程镜像->中央仓库。
    3.2配置中可以定义全局变量,如<name>1.0.2</name>,然后用${name}使用。
    3.3在编译时,默认不会处理main/java中的非.java文件,如果要,在pom中配置resource。

    4 常用配置

    4.1 javaSE打包jar程序

    // javaSE打包jar程序
    <build>
    	<plugins>
    		<!--普通Java程序的打包程序-->
    		<plugin>
    			<groupId>org.apache.maven.plugins</groupId>
    			<artifactId>maven-jar-plugin</artifactId>
    			<configuration>
    				<archive>
    					<manifest>
    						<!--主类入口-->
    						<mainClass>xyz.cqulwj.Main</mainClass>
    					</manifest>
    				</archive>
    			</configuration>
    		</plugin>
    	</plugins>
    </build>
    

    4.2 Spring boot打包jar程序

    // javaSE打包jar程序	
    <build>
    	<plugins>
    		<!--创建可执行的jar包-->
    		<plugin>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-maven-plugin</artifactId>
    		</plugin>
    	</plugins>
    </build>
    
    展开全文
  • maven-java包管理工具-01

    2019-09-26 13:14:35
    maven只用来管理java项目,也是用java开发的 传统的项目因为管理有很多问题,所以才有的maven的诞生: 1. 项目开始的时候,确定项目中可能要使用到的,然后下载,复制粘贴到项目里面去--》maven只需要再...

    maven只用来管理java项目,也是用java开发的

    传统的项目因为包的管理有很多问题,所以才有的maven的诞生:

    1. 项目开始的时候,确定项目中可能要使用到的包,然后下载包,复制粘贴到项目里面去--》maven只需要再确定包以后,将包的配置信息写进去就可以

    2. 包导入完成之后,可能会有包冲突的问题,需要在原来的jar包里面找出冲突的jar包,然后删除--》maven只需要在pom.xml配置文件中删除某一个节点就可以;

    3. 原来的项目大小可能很大,但是在使用maven以后,项目的大小会变得很小;

     

    使用maven我们需要了解以下的概念:

    一个java项目的开发包括一下的几个步骤:

    1. 编码

    2. 编译

    3. 测试

    4. 运行

    5. 打包

    6. 部署

    而maven可以帮助我们完成:编译,测试,运行,打包,部署;也就是说我们只需要完成编码,其他的部分都可以交给maven去做。

     

    下面开始安装和配置maven:

    1. 下载maven

    2. 配置环境变量

    MAVEN_HOME:D:\Software\apache-maven-3.5.3

    把maven_home添加到path里面:%MAVEN_HOME%\bin;

    测试配置是否正确:cmd->mvn -v

     

    下面介绍一个maven的几种仓库:

    1. 本地仓库,自己来维护

    2. 远程仓库(私服):一般是由公司维护

    3. 中央仓库:maven团队维护

     

    下面放一张使用maven以后的项目目录结构:

     

    maven的常用命令:

    1. clean : 清理编译的文件

    2. compile:编译了主目录的文件

    3. test:编译并运行了test目录的代码

    4. package:打包

    5.install:就是把项目发不到本地仓库

    上面的命令是按照使用顺序排列的

    多个命令可以同时使用:mvn clean package

     

    下面说一下maven在eclipse中的配置步骤:

    1. 配置maven的安装路径

    2. 配置maven的本地仓库地址

     

    下面是在eclipse中创建一个maven项目:

    1. 新建maven项目

    2. 跳过配置,直接生成完整的maven目录结构

    3. 填写pom配置文件的初始配置

    4. 完成后的目录如下所示:

    5. 处理红色错误

    手动在webapp文件夹下创建一个WEB-INF文件夹,在里面放一个web.xml文件

    6. 处理编译版本

    在pom.xml中添加如下代码:

    <build>
    		<!-- 配置了很多插件 -->
    		<plugins>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-compiler-plugin</artifactId>
    				<version>3.5.1</version>  
    				<configuration>
    					<source>1.7</source>
    					<target>1.7</target>
    					<encoding>UTF-8</encoding>
    				</configuration>
    			</plugin>
    		</plugins>
    	</build>
    

     

    7.创建一个servlet

    8. 修改web.xml删除重复的代码

    添加jar包,在pom.xml中添加如下代码:

    <dependencies>
    		<dependency>
    			<groupId>junit</groupId>
    			<artifactId>junit</artifactId>
    			<version>4.9</version>
    			<scope>test</scope>
    		</dependency>
    		<dependency>
    			<groupId>javax.servlet</groupId>
    			<artifactId>servlet-api</artifactId>
    			<version>2.5</version>
    			<scope>provided</scope>
    		</dependency>
    		<dependency>
    			<groupId>javax.servlet</groupId>
    			<artifactId>jsp-api</artifactId>
    			<version>2.0</version>
    			<scope>provided</scope>
    		</dependency>
    		
    	</dependencies>
    

     可以看见jar包已经存在于项目中了:

    8. 启动项目

    右键项目-》run as-》maven build

     

    下面是依赖的管理

    1. 添加依赖

    打开maven仓库的视图

    2. 重建索引

    1、  创建maven项目(同上)

    2、  跳过骨架(同上)

    3、  填写坐标信息(同上)

    4、  添加web.xml文件(同上)

    5、  修改编译版本(同上)

    添加坐标 选择Dependencies标签 点击add

    3. 手动输入要添加的依赖的配置属性,选择版本

    可以看到pom.xml文件里面多了以下的内容

     

    maven管理jar包的几个原则

    1. 第一声明优先原则

    <dependencies>
      <!--   spring-beans-4.2.4 -->
      	<dependency>
      		<groupId>org.springframework</groupId>
      		<artifactId>spring-context</artifactId>
      		<version>4.2.4.RELEASE</version>
      	</dependency>
      
      
    <!--   spring-beans-3.0.5 -->
      	<dependency>
      		<groupId>org.apache.struts</groupId>
      		<artifactId>struts2-spring-plugin</artifactId>
      		<version>2.3.24</version>
      	</dependency>
    

     2. 路径近者优先原则,也就是自己详细制定jar包

    <dependency>
      		<groupId>org.springframework</groupId>
      		<artifactId>spring-beans</artifactId>
      		<version>4.2.4.RELEASE</version>
      	</dependency>
    

     3. 排除原则

      	<dependency>
      		<groupId>org.apache.struts</groupId>
      		<artifactId>struts2-spring-plugin</artifactId>
      		<version>2.3.24</version>
      		<exclusions>
      		  <exclusion>
      		    <groupId>org.springframework</groupId>
      		    <artifactId>spring-beans</artifactId>
      		  </exclusion>
      		</exclusions>
      	</dependency>
    

     4. 版本锁定原则

    <properties>
    		<spring.version>4.2.4.RELEASE</spring.version>
    		<hibernate.version>5.0.7.Final</hibernate.version>
    		<struts.version>2.3.24</struts.version>
    	</properties>
    
    	<!-- 锁定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 -->
    	<dependencyManagement>
    		<dependencies>
    			<dependency>
    				<groupId>org.springframework</groupId>
    				<artifactId>spring-context</artifactId>
    				<version>${spring.version}</version>
    			</dependency>
    </dependencies>
    </dependencyManagement>
    

     

    转载于:https://www.cnblogs.com/StivenYang/p/StivenYang.html

    展开全文
  • maven java包管理工具

    2021-05-26 09:18:01
    参考:https://www.zhihu.com/question/20104186
    展开全文
  • Java包管理工具——jar

    千次阅读 2017-12-20 08:06:14
    区别于ZIP文件的地方,JAR文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被类似的javac和java这样的工具直接使用。在JAR中包含特殊文件,如manifests和部署描述,用来指示工具如何处理特定...
  • springboot前置知识:maven jar自动化管理工具 1.maven作用 一个自动化管理jar的工具 作用: a.管理第三方jar 不需要我们自己去下载,它自动搞定。 依赖关系jar也是自动管理 b.将项目 目标拆分成多个模块 ...
  • m2配置,用于JAVA包管理和下载的工具.可以方便从文档服务器下载JAR包
  • JarPM 使用Java构建的Java软件包管理器和工具包:)
  • JAVA工具包

    2017-11-29 13:34:29
    alg(算法): 提供AES算法、DES(3DES)算法、HD算法、HMAC算法、IDEA算法、MD算法、SHA算法。 cache(缓存): 提供Ehcache缓存操作与管理的相关功能。 codec(编码): 提供Base64编码、二进制编码、...
  • java项目管理工具 maven

    2020-07-28 16:02:12
    Maven是Apache下的一个纯java开发的开源项目,它是一个项目管理工具,使用maven对java项目进行构建、赖依管理。当前使用Maven的项目在持续增长。 1.2什么是项目构建 项目构建是一个项目从:源代码、编译、测试、打包...
  • python类似java的pom管理包工具

    千次阅读 2019-01-03 15:10:51
    python有像java一样的maven管理包工具吗?只需要一个pom文件,项目在任何机器上,都自动下载 我现在用python是看到报ModuleNotFoundError错了,就手动pip install XXX 感觉需要手动介入 不是很方便 代码每移植...
  • 为什么使用项目管理工具 由于 Java 的生态非常丰富,无论你想实现什么功能,都能找到对应的工具类,这些工具类都是以 jar 的形式出现的,例如 Spring,SpringMVC、MyBatis、数据库驱动,等等,都是以 jar 的形式...
  • java开发中jar 包管理工具 Maven

    千次阅读 2016-09-14 09:21:19
    Eclipse 安装 Maven启动Eclipse之后,在菜单栏中选择Help,然后选择Install New Software…,接着你会看到一个Install对话框,点击Work with:字段边上的Add按钮,你会得到一个新的Add Repository对话框,在Name字段...
  • 今天正好来简单记录一下安装 Java 开发环境的步骤。 首先安装Java开发环境 下载 JDK 安装 JDK 我这里不更改安装位置了,就是用默认的安装位置就好,如果自定义安装位置,请记好在哪就行了。然后一路点击下一步,...
  • 博客《Java Swing GUI工具包+JDBC实现校园信息管理系统》的整合版代码,包含6个java文件,对应文章六个模块,方便下载。
  • 包管理工具

    2020-01-03 10:43:56
    java 有 maven,python 有 pip,php 有 composer, nodejs 有 npm, objective-c ... Linux 上有 yum,apt,dnf 等包管理工具。 Mac Brew Homebrew 官网 Macprot macports 官网 Mac下包管理工具 Brew 与 macport 对比 ...
  • rt.jar中最主要的package是java包 java包中各子包的功能说明如下: applet:小程序 awt:图形界面化工具 beans:组件包 io:输入输出流包 包括stream流、buffer缓冲、file文件、bit比特位、byte字节、char...
  • ant是一个早期的项目管理工具,是使用java语言编写的一个工具,它的运行需要一个xml文件,而这个文件,在java项目中我们一般把它命名为build.xml,就像make命令需要的文件我们一般把它命名为MakeFile一样。...
  • Java团队项目管理工具

    2018-03-10 15:16:55
    Java团队项目开发,需要协调代码一致性、外部资源一致性,因此需要团队管理工具
  • java项目管理工具Maven

    2018-07-31 15:45:38
    Maven是跨平台的项目管理工具,主要服务 1.基于java平台的项目构建  项目完整的构建过程包括:清理-编译-测试-报告-打包-部署 理想的项目构建:高度自动化,跨平台,可重用的组件,标准化的 什么是依赖?为什么...
  • java包管理

    2016-06-03 14:00:19
    1、的作用 区分相同名字的类当类很多时,可以很好的管理类控制访问范围 2、打包命令 package 名; ...3、的命名规范 ...4、常用的 ...java.lang :提供利用 Java...java.util :工具包 java.net :网络 java.awt
  • Java - Maven第三方jar包管理工具使用

    千次阅读 2017-04-10 16:50:33
    Java开发经常会依赖第三方的东西,iOS有第三方库管理工具:cocopods,安卓有gradle ,java使用的是:Maven,前提:安装好Eclipse 1.首先Eclipse要集成安装Maven插件安装Maven参考文章:...
  • Maven是Java界一个十分成熟的项目管理工具,功能完善使用十分方便。Maven主要功能有:管理jar,编译程序,批量测试代码,自动打包项目,自动部署项目。 管理jar java开发难免会用到外部java资源,传统添加jar...
  • Java项目管理工具Maven

    2020-10-08 14:54:22
    Maven 解决的问题 在我们进行进行开发的时候我们...maven 工程对jar管理过程 项目的一键构建 指的是项目从编译,测试,运行,打包,安装,部署,这一个整个构建的过程交给maven maven 有内置的tomcat ma
  • 一款 Java平台的项目构建和依赖管理 的 自动化工具 核心概念 安装 附录 en ???? cn integrate ˈɪntɪɡreɪt vt. 使…成整体;n. 一体化;vi. 求积分;adj. 整合的 develop dɪˈveləp vt. 开发 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,266
精华内容 2,906
关键字:

java包管理工具

java 订阅