文档章节

maven学习笔记

wanglu_bj
 wanglu_bj
发布于 2016/09/14 11:14
字数 1789
阅读 16
收藏 0

                                                                    Maven

1、到官网下载maven,但不知道这些文件有什么区别,应该下哪个?

binary 指的是编译后的二进制文件。是可以直接使用的,你应该下载这个。(apache-maven-3.2.3-bin.zip)
source.zip是maven的源码包。
tar.gz 是一种压缩文件,在Linux和OSX(苹果系统)下的

2、MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3MD4

MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。
  MD5还广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以MD5值(或类似的其它算法)的方式保存的, 用户Login的时候,系统是把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比较,而系统并不“知道”用户的密码是什么。

3、

 

4、groupId包的路径,artifactId工程名字

进入pom文件所在路径,mvn compile;生成target目录class文件

Src/mian/java

Src/test/java

5、mvn test 执行test测试类,在target目录下生成test.class文件

6、mvn clean 去除target目录

7、mvn package在target编译测试并目录下生成.jar文件

8、mvn install等同于(mvn compile,mvn package,mvn test),并把jar包发布到本地的仓库

9、仓库所在的jar包E:\apache-maven-3.3.1\lib\maven-model-builder-3.3.1.jar

http://mvnrepository.com/

10、mvn archetype:generate或者mvn archetype:generate -DgroupId=com.sitech -DartifactId=test -Dversion=0.0.1-SNAPSHOT

11、文件中重命名 Alt+Shift+R

Ctrl+d删除之前内容

12、-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.

Jdk1.8和maven3.3.1版本冲突造成

Maven 隐式变量

·  ${basedir} 项目根目录

·  ${project.build.directory} 构建目录,缺省为target

·  ${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes

·  ${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}

·  ${project.packaging} 打包类型,缺省为jar

·  ${project.xxx} 当前pom文件的任意节点的内容

EasyMock 使用方法与原理剖析

EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。本文将对 EasyMock 的功能和原理进行介绍,并通过示例来说明如何使用 EasyMock 进行单元测试。

 

13、<scope>compile</scope>编译,测试,打包(打包)的时候将依赖加入,默认范围

provided编译和测试会将依赖加进去。Servlet-api tomact中包括,打包会冲突

runtime在运行时依赖,如mysql-connect

test 测试时加依赖

14、maven——disable maven nature清除maven支持,再转换maven 工程 configure——convert maven project

15、依赖的传递性(只传递compile范围的包,dbunit依赖junit3.8)

16、Maven依赖的问题

1)A项目依赖L1.0包,B项目依赖L1.1包,C项目依赖A,B,则C依赖A中的jar包,按声明顺序

2)间接依赖按级别短的依赖

3)排除依赖

    <dependency>

     <groupId>${project.groupId}</groupId>

     <artifactId>user-core</artifactId>

     <version>${project.version}</version>

     <exclusions>

     <exclusion>

     <groupId></groupId>

     <artifactId></artifactId>

     </exclusion>

     </exclusions>

</dependency>

17、聚合

<modules>

   <module>../core</module>

   <module>../user</module>

   <module>../usercore</module>

  </modules>

  18、继承

<parent>

   <groupId>com.wanglu</groupId>

   <artifactId>user-extend</artifactId>

   <version>0.0.1-SNAPSHOT</version>

   <relativePath>../user-extend/pom.xml</relativePath>

  </parent>

     其中值得注意的是<packaging>pom</packaging>这个父项目不像之前的项目那样创建16、一个JAR 或者一个WAR,它仅仅是一个引用其它Maven 项目的POM

19、Maven 仓库管理软件来搭建私服,nexus sonatype  2.5最后一个支持jdk1.6的版本

Path环境变量

E:\nexus-2.5.1-01-bundle\nexus-2.5.1-01\bin\jsw\conf\wrapper.conf更改java路径

各种报错,jdk1.7完成

参考文档http://www.oschina.net/question/698806_159372

Hosted respository :本地提交给mvn:deploy -----release,3rd party(可以自己上传第三方jar包),snapshot

中央工厂下载到私服的central proxy工厂

Pom.xml中设置工厂

<repositories>

<repository>

<id>nexus</id>

<name>Nexus repository</name>

<url>http://localhost:8081/nexus/index.html#view-repositories;public~configuration</url>

//public repository包含私服上的前几个工厂,可以增加工厂

</repository>

</repositories>

也可以在maven的conf的setting.xml中设置,如果私服没有则去中央工厂找,如果私服没有,不让去中央工厂找需设置镜像

 <mirror>

      <id>nexusMirror</id>

      <mirrorOf>repositoryId</mirrorOf>工厂id

      <name>Human Readable Name for this Mirror.</name>

      <url>设置私服路径</url>

</mirror>

<profiles>

  <profile>

      <id>nexus</id>

        <repositories>

        <repository>

          <id>nexus</id>

          <name>Repository for JDK 1.4 builds</name>

          <url>http://www.myhost.com/maven/jdk14</url>

          <release>

<enable>true</enable>

  </relsease>

  <snapshots>

<enable>true</enable>

  </snapshots>

        </repository>

      </repositories>

</profile>

<、profiles>

<activeProfiles>

    <activeProfile>nexus</activeProfile>

  </activeProfiles>

配置nexus发布私服的用户

Nexus----security--users

在conf的setting.xml中配置

<server>

      <id>deploymentRepo</id>工厂id

      <username>repouser</username>用户名如deplement

     <password>repopwd</password>deplement123

 </server>

给插件绑定目标,在compile之后执行

Maven插件官网搜索各种打包的配置

配置插件引入的依赖只在插件中起作用

 

Maven 测试 由surefire插件控制,默认执行类名为Test**,**Test,**TestCase的类

Package -DskipTests=true跳过测试

发布web项目,package war copy tomcat手动

Copy插件,自动copy

Clean package Jetty:run  

20、idea用jetty启动实现debug:http://blog.csdn.net/xlgen157387/article/details/47616841

21、http://www.cnblogs.com/holbrook/archive/2012/12/24/2830519.html#sec-1

22、

<build>
   <finalName>fms-worker</finalName>

   <plugins>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-deploy-plugin</artifactId>
         <configuration>
            <skip>true</skip>
         </configuration>
      </plugin>
      <plugin>  
           <groupId>org.apache.maven.plugins</groupId>  
           <artifactId>maven-resources-plugin</artifactId>  
           <configuration>  
               <encoding>UTF-8</encoding>  
           </configuration>  
       </plugin>  
   </plugins>
   <filters>
      <filter>src/main/resources/filter/${evn}_config.properties</filter>
         <filter>src/main/resources/filter/${evn}_jdbc.properties</filter>
         <filter>src/main/resources/filter/${evn}_mq.properties</filter>    
   </filters>
   <resources>
      <resource>
         <directory>src/main/resources</directory>
         <filtering>true</filtering>
      </resource>
   </resources>
</build>

 

23、

3、插件绑定

Maven的生命周期与插件相互绑定,用以完成实际的构建任务。具体而言,是生命周期的阶段与插件的目标相互绑定,以完成某个具体的构建任务。例如项目编译这一任务,它对应了default生命周期的compile这一阶段,而maven-compiler-plugin这一插件的compile目标能够完成该任务。因此将它们绑定,就能实现项目编译的目的。

内置绑定

为了让用户不用做任何配置就能构建Maven项目,Maven在核心为一些主要的生命周期阶段绑定了很多插件的目标,当用户通过命令行调用声明周期阶段时,对应的插件目标就会执行相应的任务。生命周期阶段与插件目标对应表如下:

表一:clean生命周期阶段与插件目标的绑定关系

 

24、maven插件对应目标

http://maven.apache.org/plugins/index.html

© 著作权归作者所有

wanglu_bj
粉丝 7
博文 68
码字总数 61266
作品 0
海淀
程序员
私信 提问

暂无文章

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
今天
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
今天
6
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
9
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
5
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部