当前位置 : 主页 > 网络编程 > PHP >

MVN学习笔记1

来源:互联网 收集:自由互联 发布时间:2023-09-06
mvn学习笔记1 1 mvn -v查看版本 2 设置代理 编辑settings.xml文件 proxies proxy idabc/id activetrue/active protocolhttp/protocol host /host port/port username.../username password..../password nonProxyHosts...../nonProxyHosts /p
mvn学习笔记1



1 mvn -v查看版本


2 设置代理

编辑settings.xml文件

<proxies>

<proxy>

<id>abc</id>

<active>true</active>

<protocol>http</protocol>

<host> </host>

<port></port>

<username>...</username>

<password>....</password>

<nonProxyHosts>.....</nonProxyHosts>

</proxy>


</proxies>

nonproxyhosts指定哪些主机名不使用代理



3 mvn clean install会把生成的jar打包到MAVEN的本地仓库中

4 在dependency中,当<scope>为test时,说明该依赖包只会加入到测试代码中去


5 maven的编译依赖范围:

compile:默认使用该依赖,对编译,测试,运行三种classpath 都有效

test: 只对测试时有效,如junit

provided:在运行时无效,对编译和测试有效,如servlet-api

runtime:如JDBC,对测试和运行有效,在编译时无效

6 归类依赖

比如spring下的很多模块,都是同一个项目的,版本都相同,则为了优化,可以这样,


先定义一个<properties>项,即

<properties>

<abc>1.0</abc>

</properties>


然后其他的dependcy中,可以这样

<version>${abc}</version>


7 mvn dependency:list

可以看到当前项目已解析的依赖

mvn dependency:tree 看到依赖树

mvn dependency:analyse 查看依赖的工具

8 MVN的仓库

MVN仓库的路径形式为groupId/artifactId/version/articatId-version.packagin

仓库分为本地仓库和远程仓库

本地仓库的路径修改,可以修改settings.xml

<settings>

<localRepository>d:\java\......</localRepository>

</settings>


9 MVN的生命周期:clean(清理项目),default是构建项目,site是建立项目站点


10 命令行与生命周期

mvn clean

mvn test

mvn clean install

mvn clean deploy site-depoly


MVN的插件和目标对应的关系 dependcy:analyze 冒号前面是插件前缀,冒号后面是


插件的目标



11 聚合

当想一次过构建多个模块时,可以使用聚合,关系是包含和被包含的关系:

<modules>

<module>.. </module>

<module>.....</module>

</modules>

12 继承

抽取一个parent.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/maven-v4_0_0.xsd">
​​​ <modelVersion>4.0.0</modelVersion>

<groupId>com.juvenxu.mvnbook.account</groupId>

<artifactId>account-parent</artifactId>

<version>1.0.0-SNAPSHOT</version>

<packaging>pom</packaging>

<name>Account Parent</name>

<properties>

<springframework.version>2.5.6</springframework.version>

<junit.version>4.7</junit.version>

</properties>

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

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

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-beans</artifactId>

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

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

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

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context-support</artifactId>

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

</dependency>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

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

<scope>test</scope>

</dependency>

</dependencies>

</dependencyManagement>

<build>

<pluginManagement>

<plugins>

<plugin>



<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-


plugin</artifactId>

<configuration>

<source>1.5</source>

<target>1.5</target>

</configuration>

</plugin>

<plugin>



<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-resources-


plugin</artifactId>

<configuration>

<encoding>UTF-8</encoding>

</configuration>

</plugin>

</plugins>

</pluginManagement>

</build>

</project>

这里有定义了父的依赖和插件。而子的继承则变为:

<parent>

<groupId>com.juvenxu.mvnbook.account</groupId>

<artifactId>account-parent</artifactId>

<version>1.0.0-SNAPSHOT</version>

<relativePath>../account-parent/pom.xml</relativePath>

</parent>

。。。。这里定义具体的依赖,其依赖不需要版本号了,比如这样:

<dependencies>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

</dependency>

</dependencies>




13 剪裁反应堆

比如多个模块的话,有可能只是选取其中的某些部分:

比如mvn-aggragtor下有mvn-email,mvn-parent,mvn-persist,mvn-email依赖mvn-


parent,则

mvn clean install -pl account-email -am

-pl:构建指定的模块,模块间用逗号分割 -am:同时构健模块的所依赖的模块



14 默认情况下,maven-surefile-plugin的test目标会自动执行测试

src/test/java下的一组命名模式的测试类,该组模式为

**/Test*.java:

**/*Test.java:

**/*TestCase.java:

跳过测试:mvn package-DskipTests

跳过测试代码的编译: mvn package-Dmaven.test.skip=true

15 只运行指定的测试:

mvn test-Dtest=类名

匹配

mvn test-Dtest=Random*Test

在pom中,可以自动运行以Tests结尾的测试类

<plugin>

<configuration>

<includes>

<include>**/*Tests.java</include>

</includes>

同样可以用<excludes><exclude>去排除运行测试的类


16 测试覆盖率报告

mvn跟开源测试覆盖率统计工具 合成,比如

mvn cobertura:cobertura

之后在target/site/cobertura下看到index.html文件
上一篇:遍历二叉树的代码实现
下一篇:没有了
网友评论