maven

xiaoxiao2021-02-28  108

coral为前端框架,marble为服务端框架 -------------------------------------------------------------- http://www.cnblogs.com/haippy/archive/2012/07/04/2576453.html ------------------------------------------------------------- mvn  -v  类似于 javac -version  或者 git --version 在linux上使用maven也需要像使用java一样设置环境变量 这是 export M2_HOME     = /? export PATH = $PATH:$M2_HOME/bin export MAVEN_OPTS = -Xms256m -Xmx512m 关于myeclipse中的内嵌maven的替换.路径是  Windows-->Preferences-->Maven-->右边点击add进行替换 ------------------------------------一般常用命令---------------------------------------- mvn  help:system 自动在本用户下创建   ~/.m2/repository mvn clean compile     清理编译 mvn clean test  清理测试 mvn clean package 清理打包 mvn clean install  清理将打包好的jar存入 本地仓库  注意是本地仓库 mvn archetype:generate 使用Archetype生成项目骨架 mvn clean deploy  根据pom中的配置信息将项目发布到远程仓库中 ------------------------------------一般常用命令---------------------------------------- ---------------------------------maven目录结构---------------------------------------- src/main/java :正式内容包路径 src/mian/resources :正式的配置文件路径 src/test/java :测试包路径 src/test/resources :测试的配置文件路径 src/main/webapp : war 资源目录 ---------------------------------maven目录结构---------------------------------------- ----------------------------优化依赖命令----------------------------------------------- mvn dependency:list   显示所有已经解析的所有依赖 mvn dependency:tree  以目录树的形式展现依赖,  最高层为一层依赖 其次二层依赖 三层依赖.... mvn dependency:analyze  第一部分显示 已经使用但是未显示依赖的的  第二部分显示项目未使用的但是依赖的 ----------------------------优化依赖命令----------------------------------------------- 构件: jar 插件 war  所有依赖的jar 构建:编译 测试 打包 发布 ---------------------------关于 maven的生命周期 和插件 关系--------------------- 生命周期就是接口:表明要干什么事情 插件就是具体的实现:表明怎么干这件事情 ---------------------------关于 maven的生命周期 和插件 关系--------------------- 聚合,继承,集成测试,自动化部署,(这几块非常重要 自己去瞅瞅吧) 如下是pom.xml文件的常用配置 <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>  <!-- 固定值在MAVEN3中-->   <groupId>cuiyaonan2000</groupId>  <!-- 所属于的组 -->   <artifactId>maven</artifactId>  <!-- 唯一标示 -->   <version>0.0.1-SNAPSHOT</version>  <!-- 版本号 -->   <packaging>war</packaging>   <!-- 项目的打包方式,默认使用jar -->   <name>maven项目模板的基本使用</name>   <description> 这里的描述不知道是干吗用</description>        <properties>         <springframework.version>2.5.6</springframework.verson>         <!-- 归类依赖 只需在  <version>${springframework.version}</version>  使用就可以了-->    </properties> <dependencies>     <dependency>           <groupId>junit</groupId>           <artifactId>junit</artifactId>           <version>4.7</version>           <!-- <type>依赖的类型,大部分情况下不必声明 默认是jar</type> -->           <scope>test</scope>  <!--  依赖范围  传递性依赖 详见p63 -->           <!-- <optional>标记依赖是否可选 不明白 该处的值是 true 和 false 详见p66</optional> -->           <!--                 <exclusions>                     <exclusion>                         排除传递性依赖 只需列出如下的2项就可以了                         <groupId></groupId>                         <artifactId></artifactId>                     </exclusion>                 </exclusions>           -->     </dependency> </dependencies> <build>     <plugins>         <!-- 设置这个插件的对应Java版本,貌似是为了解决一个历史问题-->         <plugin>             <groupId>org.apache.maven.plugins</groupId>           <artifactId>maven-compiler-plugin</artifactId>             <configuration>                 <source>1.5</source>                 <target>1.5</target>             </configuration>         </plugin>         <!-- 如下使用UTF-8 处理资源文件 -->         <plugin>             <groupId>org.apache.maven.plugins</groupId>             <artifactId>maven-resources-plugin</artifactId>             <configuration>                  <encoding>UTF-8</encoding>             </configuration>         </plugin>     </plugins> <!--  配置远程版本仓库  --> <repositories>     <!-- 设置远程版本库  直接收发布版本 不接受快照版本-->     <repository>         <id>jboss</id>  <!-- 如果是用central 就会覆盖中央仓库 -->         <name>JBoss Repository</name>         <url>http://repository.jboss.com/maven2/</url>         <release>             <enabled>true</enabled>             <!-- 如下的2个参数详见p83             <updatePolicy>daily</updatePolicy>               <checksumPolicy>ignore</checksumPolicy>             -->         </release>         <snapshots>             <enabled>false</enabled>         </snapshots>         <layout>default</layout>     </repository> </repositories> <!--  将该项目 发布到远程仓库中 --> <distributionManagement>     <repository>         <id>proj-release</id>   <!--  这里的id是为了 跟setting.xml中的 username  和 userpassword 的id匹配,有的仓库需要权限账户-->             <name>Proj Release Repository</name>         <url>http://192.168.89.130</url>     </repository>     <snapshotRepository>         <id>proj-release</id>         <name>Proj Release Repository</name>         <url>http://192.168.89.130</url>     </snapshotRepository> </distributionManagement> </build> </project> ============================================================================== maven 一 :依赖的范围  (1编译 2 测试 3运行) <scope>import</scope> 1 compile (1编译 2 测试 3运行)。默认使用此依赖范围 2 provied (1编译 2 测试) 3 runtime (2 测试 3运行) 4 test  (2 测试 ) 5 system (1编译 2 测试) 不可移植性 6 import  导入的范围 ,它只用在dependcyManagement中 表示从其他的pom中导入dependency 配置 二 依赖传递 eg:山鸡跟楠哥混  南哥跟b哥混====》等价于山鸡间接跟b哥混 Run as===》maven build ===> clean package //打包 install //安装到本地仓库 [INFO] Installing D:\kaifaHuanjing\lijufa\workspase\hongxing-bge\pom.xml to C:\Users\ljf\.m2\repository\com\hongxing\hongxing-bge\0.0.1-SNAPSHOT\hongxing-bge-0.0.1-SNAPSHOT.pom clean compile  <exclusions>  <exclusion>    <groupId>com.hongxing</groupId>             <artifactId>hongxing-bge</artifactId>  </exclusion>   </exclusions> 三 依赖冲突 1 短路优先 a-b-c-x(jar) a-d-x(jar) 2 先声明先优先 四 聚合和继承 聚合(其他项目的容器) <modules>.............. <module>BigHealth-Ehr</module>..........</modules> 继承:父类有的子类就有   Maven 中央仓库地址: Maven 常用仓库网址     1. http://www.sonatype.org/nexus/     2. http://mvnrepository.com/ (本人推荐仓库)     3. http://repo1.maven.org/maven2 ========================== 1.打开eclipse 2.window-->references-->Maven0--> User Settings:修改User Settings, Browse重新选择新位置D:\gongsi\apache-maven-3.1.0\conf\settings.xml。 当你在eclipse中集成了maven2后,默认情况下, eclipse会在你的系统盘(c:/)下创建一个目录, C:/Documents and Settings/danlley/.m2/repository 并将其作为数据仓库目录。如果有一天当你很不幸的需要重做系统, 而又无法将maven2仓库目录下的数据及时转移的时候, 你此前对maven2仓库所做的一切维护都将意味着竹篮打水一场空。为了让你的在maven2中的损失最小, 提高你所谓劳动成果的安全系数,建议将你的数据仓库进行迁移,具体设置方式如下: 1.打开eclipse 2.window-->references-->Java-->build path-->classpath variables 3.通过上面两部操作你将看到一个名为M2_REPO的variables属性 4.双击属性或者点击edit按钮 5.修改属性C:/Documents and Settings/danlley/.m2/repository 为 E:/maven-2.0.4/.m2/repository   OK,从此你就可以高枕无忧喽! =========================================== <groupId>反写的公司网址+项目名</groupId> <artifactId>项目名+模块名<artifactId> <version></version> <!-- 默认 jar  war zip pom --> <packaging></packaging> <name>项目描述名</name> <url>项目地址</url> <description>项目描述</description> <parent> <groupId>com.dcits.djk</groupId> <artifactId>BigHealth</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> // <modules>   <module>BigHealth-Core</module>   <module>BigHealth-Web</module>   <module>BigHealth-Auth</module>   <module>BigHealth-Manager</module>   <module>BigHealth-Img</module>   <module>BigHealth-Mis</module>   <module>BigHealth-Consult</module>   <module>BigHealth-Selftest</module>   <module>BigHealth-Telserv</module>   <module>BigHealth-Ohar</module>   <module>BigHealth-Medicalabroad</module>   <module>BigHealth-Examination</module>   <module>BigHealth-Examcenter</module>   <module>BigHealth-Familydoctor</module>   <module>BigHealth-Ncd</module>   <module>BigHealth-Ehr</module>   </modules> <build> //插件 <plugins> <!-- compiler插件, 设定JDK版本 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5</version> <configuration> <source>1.8</source> <target>1.8</target> <showWarnings>true</showWarnings> </configuration> </plugin> </plugins> <defaultGoal>compile</defaultGoal> </build> <!-- 依赖管理 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>4.2.4.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <!-- 列表依赖--> <dependencies>    <dependency> <groupId>cglib</groupId>       <artifactId>cglib-nodep</artifactId> <version>3.2.0</version> //依赖范围 <scope>runtime</scope>        </dependency> </dependencies> ------------------------------------------------------------------ 1 maven的setting配置文件中mirror和repository的区别: 简单点来说,repository就是个仓库。 maven里有两种仓库,本地仓库和远程仓库。远程仓库相当于公共的仓库,大家都能看到。 本地仓库是你本地的一个山寨版,只有你看的到,主要起缓存作用。 当你向仓库请求插件或依赖的时候,会先检查本地仓库里是否有。如果有则直接返回,否则会向远程仓库请求,并做缓存。 远程仓库可以在工程的pom.xml文件里指定。 如果没指定,默认会到这个地方去请求插件和依赖包。 <repository>         <snapshots>         <enabled>false</enabled>         </snapshots>         <id>central</id>         <name>Maven Repository Switchboard</name>         <url>  </repository>   本地仓库默认在你本地的用户目录下的.m2/repository目录下。       mirror就是镜像,主要提供一个方便地切换远程仓库地址的途径。 比如,上班的时候在公司,用电信的网络,连的是电信的仓库。 回到家后,是网通的网络,我想连网通的仓库,就可以通过mirror配置,统一把我工程里的仓库地址都改成联通的,而不用到具体工程配置文件里一个一个地改地址。 mirror的配置在.m2/settings.xml里。如: <mirrors>     <mirror>       <id>UK</id>       <name>UK Central</name>       <url>     <mirrorOf>central</mirrorOf>     </mirror>   </mirrors>   这样的话,就会给上面id为central的远程仓库做了个镜像。 以后向central这个仓库发的请求都会发到而不是了。

转载请注明原文地址: https://www.6miu.com/read-46018.html

最新回复(0)