Maven安装与配置
2016-01-30 18:16 youxin 阅读(313) 评论(0) 编辑 收藏 举报Maven是一个用于项目构建的工具,通过它便捷的管理项目的生命周期。即项目的jar包依赖,开发,测试,发布打包。
下面我自己总结一下它的几个特点,看了这些特点,也许对maven有更多的了解。
1 jar包依赖
这个也许会maven最突出的特点了使用maven不需要上网单独下载jar包,只需要在配置文件pom.xml中配置jar包的依赖关系,就可以自动的下载jar包到我们的项目中。这样,别人开发或者使用这个工程时,不需要来回的拷贝jar包,只需要复制这个pom.xml就可以自动的下载这些jar包。
而且,我们自己下载jar包,还有可能造成版本的不一致,这样在协同开发的过程中就有可能造成代码运行的不一致。通过使用maven精确的匹配jar包,就不会出现这种问题了。
2 项目坐标
Maven通过特定的标识来定义项目名称,这样既可以唯一的匹配其他的jar包,也可以通过发布,使别人能使用自己的发布产品。这个标识就被叫做坐标,长的其实很普通,就是简单的xml而已:
1 <groupId>com.test</groupId> 2 <artifactId>maventest</artifactId> 3 <version>0.0.1-SNAPSHOT</version> 4 <packaging>jar</packaging> 5 6 <name>maventest</name> 7 <url>http://maven.apache.org</url>
groupId:所述的项目名称,由于有的项目并不是一个jar包构成的,而是由很多的jar包组成的。因此这个groupId就是整个项目的名称。
artifactId:包的名称。
version:版本号。
packaging:包的类型,一般都是jar,也可以是war之类的。如果不填,默认就是jar。
name和url,一个是名称,一个是maven的地址。主要就是上面的几个参数。
当想要依赖什么jar的时候就可以通过下面的方式依赖:
1 <dependencies> 2 <dependency> 3 <groupId>junit</groupId> 4 <artifactId>junit</artifactId> 5 <version>3.8.1</version> 6 <scope>test</scope> 7 </dependency> 8 </dependencies>
各个属性的内容基本上都是一样的。
这里要注意的是jar包的命名规则:
artifactId-version[-classifier].packaging
比如上面的pom.xml生成的jar包名字就是:maventest-0.0.1-SNAPSHOT.jar。
这里的classifier是可选的,但是有的项目可能还需要导出附属的一些文件,如javadoc,source等等,那么这个地方就需要配置一个字符串。一般都是JDKXXX之类的。
3 测试驱动
Maven是测试驱动的开发思路,因此工程创建初期,就包含两个文件夹,main和test。一个用于放置开发的java文件,一个用于写test单元测试。这样每次开发的时候,提前设计单元测试,就能帮助减少BUG。
直接点击新建,在里面可以找到Maven选项卡,点击Maven Project创建Maven工程
创建工程,红色是创建普通的maven工程的。粉色是创建web工程的。
6 填写相关的groupId artifactId version等信息
(artifact id是工程名称)
点击完成就创建好了一个简单的maven工程。
maven的工程一般都是如下的结构:
first_maven |-- pom.xml `-- src |-- main | |-- java | | `-- com | | `-- test | | `-- App.java | `-- resources | `-- META-INF | `-- application.properties `-- test `-- java `-- com `-- test `-- AppTest.java
pom.xml:用于定义或者添加jar包的依赖
src-main:用于存放java源文件
src-test:用于存放测试用例。
也许工程下还会出现target文件夹,这个是用来生成对应的class文件或发布的jar包。
eclipse中maven常用的命令
点击Run As就可以发现几个Maven的命令:
Maven Build:
这个命令用于编译Maven工程,执行命令后会在target文件夹中的classes中生成对应的class文件。
Maven Clean:
删除target文件夹,即删除生成的package包以及class等文件。
Maven Test:
先自动进行编译,在运行所有的测试用例。
Maven install:
发布生成对应的package包。
注意:
留意上面的命令的作用,build和test都会生成相应的class文件。也就是说,当你新建一个maven工程,或者clean一个maven工程后,如果没有使用这两个命令,直接针对类进行测试,会跑出java.class.notfound的错误。因为此时还没有编译生成class文件。
只有使用了上面的两个命令后,才能针对某个类进行单元测试。
如何在eclipse jee中检出的项目并转换为Maven project?
选择项目然后右键Configure,选择Convert to Maven Project 即可。
eclipse右键maven build,弹出界面
新增的maven命令可以通过如下方式找到,并再次运行:
maven install报错:
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
解决方案:
这是由于
由于Eclipse使用的是JRE导致,添加JDK即可
下载java jdk,并安装java jdk。下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
在eclipse的菜单中,进入 Window > Preferences > Java > Installed JREs > Execution Environments,选择JavaSE-1.6, 在右侧选择jdk.
然后在maven菜单中使用 “update project ...”.
如果没找到jdk添加jdk即可,看:http://stackoverflow.com/questions/19655184/no-compiler-is-provided-in-this-environment-perhaps-you-are-running-on-a-jre-ra#
Eclipse中创建Web Maven Project并部署到Tomcat中(Maven 的Web Project加入另一个Maven Project依赖)
maven pom.xml加某些另外的repository。
如:
遇到错误:Could not transfer artifact javax.jms:jms:ja
加个jboss的repository就可以了:
<repositories>
<repository>
<id>thirdparty-releases</id>
<name>JBoss Thirdparty Releases</name>
<url>http://repository.jboss.org/nexus/content/groups/root_repository/maven2/</url>
</repository>
</repositories>
eclipse Maven配置
jetbrains IntelliJ IDEA 配置maven工程
官网下载maven:
https://maven.apache.org/download.cgi
新建个环境变量MAVEN_HOME,写上maven的路径。然后在path变量增加%MAVEN_HOME%\bin
然后编辑maven文件夹conf下面的settings.xml
修改maven仓库路径
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<!--<!-- maven自动下载的jar包,会存放到该目录下 -->
<localRepository>D:/javaRelatedSoft/m2/repositorys</localRepository>
Idea 自带了apache maven,默认使用的是内置maven,会在Window用户目录下新建一个 .m2 的文件夹(一般在C盘)来存放下载的jar包。
这也是为什么要调整存放路径的原因,随着开发项目越来越多,仓库会越来越大。所以我们需要配置全局settings,来调整一下配置,比如修改远程仓库地址,本地编译环境变量等。
在IntelliJ IDEA中配置maven
打开-File-Settings
这里要注意,选择了自定义的maven后, 一定要勾选Override(覆盖)。同时保证 Local repository 项填写的路径 和 你勾选的配置文件中配置的路径是一致的。
新建maven WEB项目
打开-File-New-Project
打开你的本地项目,选择右边栏的Maven,再点击加载标签,下载jar包依赖,最后再点击第二个图标来刷新本地文件目录。
参考:https://www.cnblogs.com/cnbp/p/12618131.html