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这个仓库发的请求都会发到而不是了。