`
千年松鼠
  • 浏览: 25167 次
文章分类
社区版块
存档分类
最新评论

maven 备忘

阅读更多
一.配置

1.有的项目的pom.xml中没有配置maven远程远程仓库,maven的server.xml中也没有配置。那么项目中的依赖是在哪里下载的呢?
  肯定有一个默认的远程仓库,叫做中央仓库,他配置在maven的超级pom中,而所有的maven项目都继承该pom,这个超级pom集成在${M2_HOME}/lib/maven-model-builder-3.0.5.jar/org/apache/maven/model/pom-4.0.0.xml中,打开该文件,可以看到这个:

  <repositories>
    <repository>
      <id>central</id>
      <name>Central Repository</name>
      <url>http://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>

  其中<url>http://repo.maven.apache.org/maven2</url>就是默认的远程仓库。就是因为有了它我们才可以不进行仓库配置也能下载依赖。
  当然,我们也可以使用其他的远程仓库,比如自己公司内部的仓库。配置如下:
<repositories>
<repository>
	<id>repository.engineering.redhat.com</id>
	<name>RedHat Engineering Operations</name>
	<url>https://repository.engineering.redhat.com/nexus/content/repositories/hss-tools</url>
	<releases>
		<enabled>true</enabled>
	</releases>
	<snapshots>
		<enabled>false</enabled>	
	</snapshots>
	<layout>default</layout>
</repository>
</repositories>

  配置在server.xml中会作用于所有项目,在自己的pom.xml中则只作用于该项目

[size=medium]
2.导入插件

     <build>
        <plugins>
		<plugin>
		  <groupId>org.apache.maven.plugins</groupId>
		  <artifactId>maven-war-plugin</artifactId>
		  <version>2.3</version>
		  <configuration>
	          <warName>pay</warName>
		  </configuration>
		</plugin>
        </plugins>
    </build>

上面这个插件可以用于去掉打包时候的版本号,warName为包名
也可以用

    <build>
        <finalName>pay</finalName>
    </build>


[size=medium]3.指定编码方式

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

4.自定义变量
<properties>
 <spring.version>1.2.6</spring.version>
</properties>


用EL表达式方式引用,方便日后统一修改版本号,如
<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-core</artifactId>
 <version>${spring.version}</version>
</dependency>
<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-aop</artifactId>
 <version>${spring.version}</version>
</dependency>

5.继承与聚合
  继承:概念与java中的继承类似。目的是抽出公共的元素,在开发中尽量减少项目的配置简化开发。例如:要并行开发好几个项目,而这些项目中又有很多相同的配置,那么就可以建立一个父项目A,包含这些配置,而其他项目只需要继承父项目A,不用再进行这些重复的配置。
B要继承A需要在B的pom.xml中添加配置如下:

  <parent><!--父项目的groupId、artifactId、version -->
    <groupId>com.lngtop.piaohao</groupId>
    <artifactId>piaohao</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- <relativePath>父pom.xml的相对路径</relativePath> -->
  </parent>

子项目的pom文件会继承父pom文件的所有元素

  聚合:目的是把聚合的各个module(项目)一起构建。例如:要打包多个项目A、B、C时,如果用聚合的话就不必分别打包,可以直接打包父项目(被聚合的项目)便会打包所有项目
把B聚合到A中需要在A的pom.xml中添加如下配置

    <modules><!--pay为聚合的项目相对目录 -->
        <module>pay</module>
    </modules>


实际开发中一般会将继承与聚合混合使用,此时只要同时加上以上配置即可。

6.排除传递依赖
  例如我们的项目A依赖B,而B依赖C,而A不依赖C。此时可在A中排除C,起到项目瘦身作用

<dependency>
		<groupId>B的groupId</groupId>
		<artifactId>B的artifactId</artifactId>
		<version>${B.version}</version>
                <exclusions>  
                   <exclusion>  
                          <groupId>C的groupId</groupId>  
                          <artifactId>C的artifactId</artifactId>  
                   </exclusion>  
                </exclusions>
</dependency>



二.命令

1.导入官网没有的jar包:
  先安装mvn install:install-file -DgroupId=*** -DartifactId=*** -Dversion=*** -Dpackaging=jar -Dfile=***.jar
2.创建web项目:
    mvn archetype:create -DgroupId=packageName -DartifactId=webappName -Dversion=0.1 -DarchetypeArtifactId=maven-archetype-webapp
3. 编译: mvn compile
4. 编译测试代码:mvn test-compile   
5. 运行测试:mvn test    
6. 打包:mvn package  
7. 清除mvn生成的文件:mvn clean  
8. 生成eclipse项目:mvn eclipse:eclipse 
9. 编译测试的内容:mvn test-compile 
10. 只打jar包: mvn jar:jar 
11. 清除eclipse的一些系统设置:mvn eclipse:clean
12.下载依赖的源代码:mvn dependency:sources -DdownloadSources=true (下载源代码jar) -DdownloadJavadocs=true (下载javadoc包)
分享到:
评论

相关推荐

    maven备忘命令集

    NULL 博文链接:https://tywo45.iteye.com/blog/462053

    IDEA Maven 配置备忘笔记

    主要介绍了IDEA Maven 配置备忘笔记,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    nexus+maven构建私服

    nexus+maven构建私服,自己备忘

    tomcat,jdk,maven环境变量配置(备忘)

    NULL 博文链接:https://wangyu.iteye.com/blog/1325138

    coms10017:UoB coms10009实验室常见问题解答和一些常规信息

    COMS10017 该存储库包含注释,以及有关各种主题的详细讨论,例如和 。 实用材料(0%) : 2月- 2月1日 2月至8月8日 2月至19日 2月至22日 3月17日- 3月1日阅读周 3月至8月8日 ...Maven - Maven备忘单

    cms项目-maven项目搭建

    此文档主要描述一个maven项目的搭建过程,没有理论的东西,只有实战。写文档的目的只是作为一个项目搭建的备忘录(记性差,怕忘了),也为有需要的同行提供一个参考,以方便快速搭建自己的maven项目。

    毕业设计基于JavaWeb实现的一个备忘录系统项目源码.zip

    后端基于Maven构建,采用Jdbc完成数据持久化操作。代码分层编写,分为Controller控制器层,Service业务逻辑层,dao持久化层,以及相对应的工具类。 前端直接采用Layui框架编写,ajax请求后端接口,进而完成页面渲染...

    mavenweb.iml

    学习crm的javaweb项目文章由B站动力节点相关课程视频整理而成,不作为基础入门教程,只作为备忘的学习笔记。

    备忘录.rar

    资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 SpringBoot 毕业设计,SpringBoot 课程设计,基于...部署环境:Tomcat(建议用 7.x 或者 8.x b版本),maven 

    VB工作备忘录设计与实现(源代码+系统).rar

    资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 SpringBoot 毕业设计,SpringBoot 课程设计,基于...部署环境:Tomcat(建议用 7.x 或者 8.x b版本),maven 

    基于SpringBoot+Vue的客户信息管理系统设计与实现(源码+数据库+文档).zip

    基于SpringBoot+Vue的客户信息管理系统设计与实现(源码+数据库+文档).zip 高分通过项目,已获导师指导。 本项目是一套基于Springboot的客户信息管理系统,主要针对计算机相关专业的正在做毕设的...Maven包:Maven3.3.9+

    java基于SpringBoot+vue流浪宠物爱心组织管理系统-论文源码数据库.zip

    管理员的功能包括备忘录管理、宠物管理、宠物收藏管理、宠物评价管理、宠物订单管理、字典管理、公告管理、捐赠管理、流浪管理、流浪收藏管理、流浪评价管理、流浪订单管理、单页数据管理、团队活动管理、团队活动...

    RabbitMQ-Demo.zip

    Maven项目中使用RabbitMQ示例 使用到读取自定义配置文件。 可以正常运行。 主要是自己总结记录备忘。 如果能帮到需要的人,欢迎下载。

    BlogGakki:伍记的备忘录(wuvole.com)

    一个用于记录自己学习与生活的博客网站(自己喜欢称为备忘录) ,开发此项目的初衷是为了加深对 JAVA Web 开发各个姿势的了解,以及学习一些新的技术点,毕竟实践是检验学习成果的方法 V1 版本(已基本完成):采用 ...

    mybatis-plus-demo.zip

    Maven项目中使用mybatis-plus操作mysql示例 使用到读取自定义配置文件。 可以正常运行。 主要是自己总结记录备忘。 如果能帮到需要的人,欢迎下载。

    java8集合源码分析-memobook:备忘录

    maven docker 详细安装过程 框架 Spring Mybatis SpringMVC SpringBoot Spring Security Shiro Swagger-API框架 开发语言 java javaweb socket编程 rpc框架 tomcat jdk源码分析 go rust 前端 基础概念 html css 开发...

    CSC-495:社交网络分析班项目 CSC 495

    请参考此备忘单以获取有关某些 Java Java 文件夹包含一个 maven 项目,该项目有两个主要方法,它们都修剪数据以删除文本评论数据和名称以减小文件大小。 一种方法保留原始文件格式,另一种方法将每条记录转换为 CSV...

    udemy-tankwar:Udemy课程“放码过来!新版Java坦克大战”源代码

    开发环境及相关备忘 基于JDK8,IDEA 2019.1,MAVEN 集成Travis 也可以使用exe4j或install4j内置Windows重置程序或安装程序 mvn clean package mvn dependency:copy-dependencies -DoutputDirectory=target/libs -...

    贷款:此API管理向用户的贷款

    前提条件: MavenJava JDK 1.8配置su proyecto 卢塞戈·德·克洛纳尔·库图尔储藏所,制罐厂和工程公司, mvn clean install工厂中的建筑工人。 一个连续的,连续的,连续的,连续的播放mvn spring-boot:run y ...

Global site tag (gtag.js) - Google Analytics