代码改变世界

随笔分类 - Maven

nexus搭建

2014-10-14 18:51 by Leo100w, 191 阅读, 收藏, 编辑
摘要: Nexus是Maven仓库管理软件,可以用来搭建私服。主页 http://www.sonatype.org/nexus/ 下载地址 http://www.sonatype.org/nexus/downloads/ 下载 Download Nexus OSS 版本就OK了,Pro版本需要收费。 安装 下载完之后,将其解压到某个目录 运行 nexus-2.10.0-02\bin\jsw\window... 阅读全文

反应堆Reactor

2014-10-13 16:57 by Leo100w, 187 阅读, 收藏, 编辑
摘要: mvn -h 可以看到很多命令及其用途;-am --also-make 同时构建所列模块的依赖模块;-amd -also-make-dependents 同时构建依赖于所列模块的模块;-pl --projects 构建制定的模块,模块间用逗号分隔;-rf -resume-from 从指定的模块恢复反应堆。假设有如下聚合模块:account-aggregator ,其依次包含如下几个模块:acc... 阅读全文

聚合与继承

2014-10-13 16:49 by Leo100w, 188 阅读, 收藏, 编辑
摘要: 说到聚合与继承我们都很熟悉,maven同样也具备这样的设计原则,下面我们来看一下Maven的pom如何进行聚合与继承的配置实现。 一、为什么要聚合? 随着技术的飞速发展和各类用户对软件的要求越来越高,软件本身也变得越来越复杂,然后软件设计人员开始采用各种方式进行开发,于是就有了我们的分层架构、分模块开发,来提高代码的清晰和重用。针对于这一特性,maven也给予了相应的配置。 情景分析一: 我们在开... 阅读全文

依赖范围

2014-10-11 14:30 by Leo100w, 211 阅读, 收藏, 编辑
摘要: 1、Maven因为执行一系列编译、测试和部署运行等操作,在不同的操作下使用的classpath不同,依赖范围就是用来控制依赖与三种 classpath(编译classpath、测试classpath、运行classpath)的关系。 Maven有以下几种依赖范围: compile:编译依赖范围(默认),使用此依赖范围对于编译、测试、运行三种 classpath 都有效,即在编译、测试和运行的时候都... 阅读全文

设置HTTP代理

2014-10-10 20:51 by Leo100w, 464 阅读, 收藏, 编辑
摘要: Maven通过>/.m2/settings.xml(如果没有该文件,复制>/conf/settings.xml到>/.m2/目录下)设置HTTP代理 ... optional true http proxyuser proxypass proxy.host.net 80 local.n... 阅读全文

配置用户范围settings.xml

2014-10-10 20:41 by Leo100w, 309 阅读, 收藏, 编辑
摘要: Maven用户可以选择配置>/conf/settings.xml或者>/.m2/settings.xml。前者是全局范围的,整台机器上的所有用户都会直接受到该配置的影响,而后者是用户范围的,只有当前用户才会收到该配置的影响。 推荐使用用户范围的settings.xml,只要是为了避免无意识地影响到系统中的其它用户。除了影响范围这一因素,配置用户范围settings.xml文件还便于Maven升级。... 阅读全文

设置MAVEN_OPTS环境变量

2014-10-10 20:37 by Leo100w, 878 阅读, 收藏, 编辑
摘要: 运行mvn命令实际上是执行了Java命令,既然是运行Java,那么运行Java命令可用的参数当然也应该在运行mvn命令时可用。这个时候,MAVEN_OPTS环境变量就能派上用场。 通常需要设置MAVEN_OPTS的值为-Xms128m –Xmx512m, 因为Java默认的最大可用内存往往不能够满足Maven运行的需要,比如在项目较大时,使用Maven生成项目站点需要占用大量的内存,如果没有该配置... 阅读全文

配置Eclipse使用外部Maven

2014-10-10 20:32 by Leo100w, 915 阅读, 收藏, 编辑
摘要: 当集成Maven时,Eclipse会安装上一个内嵌的Maven, 这个内嵌的Maven通常会比较新,但不一定很稳定,而且往往也会和命令行使用的Maven不是同一个版本。这里又会出现两个潜在的问题:首先,较新版本的Maven存在很多不稳定因素,容易造成一些难以理解的问题;其次,除了IDE,也经常还会使用命令行的Maven,如果版本不一致,容易造成构建行为的不一致。因此,应该在IDE中配置Maven插... 阅读全文

添加Main-Class到manifest中

2014-10-10 20:19 by Leo100w, 5299 阅读, 收藏, 编辑
摘要: Maven默认打包生成的jar是不能够直接运行的,因为带有main方法的类信息不会添加到manifest中(打开jar文件中的META-INF/MANIFEST.MF文件,将无法看到Main-Class一行)。为了生成可执行的jar文件,需要借组maven-shade-plugin,配置该插件如下: 4.0.0 cn.xianshiyouhui.mvntest hello-world 1... 阅读全文

添加依赖

2014-10-10 20:10 by Leo100w, 272 阅读, 收藏, 编辑
摘要: 如需添加对其他项目的依赖,需要在project元素下依次添加dependencies, dependency配置,如 4.0.0 cn.xianshiyouhui.mvntest hello-world 1.0-SNAPSHOT Maven Hello World Project junit junit 4.11 test Maven会自动... 阅读全文

项目骨架约定

2014-10-10 20:00 by Leo100w, 144 阅读, 收藏, 编辑
摘要: pom.xml放在项目根目录下 项目主代码放到src/main/java/目录下,遵循该约定,无需额外的配置,Maven会自动搜索该目录找到项目主代码 Maven项目中默认的测试代码目录是src/test/java 例如; 阅读全文

Maven坐标 groupId artifactId version packaging classifier name

2014-10-10 19:53 by Leo100w, 1726 阅读, 收藏, 编辑
摘要: groupId定义项目属于哪个组,这个组往往和项目所在的组织或公司存在关联。譬如在googlecode上建立一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp artifactId定义了当前Maven项目在组中唯一的ID,例如你可能为不同的子项目(模块)分配artifactId, 如myapp-util, myapp-domain, myapp-web等 ... 阅读全文

No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

2014-10-10 19:43 by Leo100w, 1627 阅读, 收藏, 编辑
摘要: 使用m2eclipse可能遇到如下错误[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project hello-world: Compilation failure [ERROR] No compiler is provid... 阅读全文

安装m2eclipse

2014-10-10 19:26 by Leo100w, 146 阅读, 收藏, 编辑
摘要: Help->Eclipse Marketplace… 搜索 maven 安装 Maven Integration for Eclipse 阅读全文