通过maven构建一个java项目

不知不觉毕业四年了,毕业到现在呆过两家公司,用的都是比较老的技术,基本就是ssh(而且还是比较老版本的ssh),自己也是属于比较懒散的程序员,公司用什么就学什么,没有自己去学习一些比较时髦的技术,虽然说是工作了四年,但感觉自己的技术水平还停留在中低下水平,在这个it技术更新迭代如此之快的年代,一直这样下去恐怕以后难有立足之地。为了不至于被后浪拍得连骨头都找不着,于是下决心开始自学一些新技术。

首先学习的是maven,maven应该算是现在java领域最流行的项目管理工具(gradle的势头貌似也挺猛,后面也得抽空学习一下),关于maven的更多信息,各位看官自行百度吧,因为我也是刚学,对maven的了解还有限,我在学习过程中主要还是将他用于管理项目对第三方jar包的依赖。

在这里先推荐一个maven视频教程孔浩老师的maven视频教程,讲得挺详细的,要学习maven的人可以看看。

在使用之前,请确保系统已经安装了jdk

一、maven的安装配置

进入maven官网下载maven的最新安装包,下载后的是一个压缩包,下载完成后解压到系统任意目录(我的解压目录为:D:\maven\apache-maven-3.3.3),maven解压后的情况如图:


解压完成后配置环境变量:

新建一个系统变量:变量名为M2_HOME;变量值为D:\maven\apache-maven-3.3.3

然后在Path最后面加上;%M2_HOME%\bin,至此整个mavan就算安装完成,打下cmd命令窗口,输入mvn -version显示出如下所示信息,表示maven安装成功.


以前在做项目时,如果项目中需要用到第三方jar包,需要自己到官网去下载此jar包和该jar包依赖的其他jar包,然后放到项目lib目录中,但使用maven以后,几需要几行简单的配置,maven就会自动到maven中央仓库https://repo1.maven.org/maven2/下载相应的jar包,及其依赖包,比例项目中需要用到hibernate核心包,只需要在maven项目配置文件pom.xml(关于pom.xml的详细信息网上已经有很多大神写得很清楚了,在此我就不画蛇添足,我这里也从网上找了一篇写得比较详细的关于pom.xm介绍的连接http://blog.csdn.net/longeremmy/article/details/9670619)中添加如下配置:

<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-core</artifactId>
	<version>4.3.10.Final</version>
</dependency>
在maven中一个构件可以通过maven坐标(即groupId、artifactId、version)来确定,在此例中maven会自动给我们下载版本号为4.3.0.Final的hibernate-core.jar包及此jar包依赖的其他第三方jar包,此处需要说明的是maven会自动将下载的jar包放到C盘当前用户目录下.m2/repository子目录里(称之为本地仓库),随着项目以后用到的第三方jar包越来越多,本地仓库里的东西也会变得越来越多,占用了C盘空间,为避免此情况,可以修改maven安装目录下conf/settings.xml文件,找到大约53行的<localRepository>/path/to/local/repo</localRepository>将其复制出来放到注释外面,修改本地仓库位置到其他盘(我修改的本地仓库位置为D:\maven\m2\repository),如图:


这样项目中再有需要依赖第三方jar包中,maven便会将依赖的jar包下载到D:\maven\m2\repository这个目录里。根据孔浩老师的视频教程此处还需要将settions.xml复制一份放到D:\maven\m2目录中。

二,使用maven构建项目

打开cmd 命令窗口,随便进入一个目录,如:D:\maven\demo输入命令:mvn archetype:generate -DgroupId=com.chenqa.maven -DartifactId=ch01 -DarchetypeArtifactId=maven-archetype-quickstart,此处maven需要下载一些基础构件,因为maven中央仓库在国外,国内访问会有一些卡,需要等待一会,如果出现长时间等待,可以按ctrn+c,结束当前命令,然后修改maven安装目录下的conf/settings.xml文件(注意是maven安装目录下的,不是本地仓库目录下的settings.xml),找到mirrors配置项,在里面增加一个国内的镜像配置:

<mirror>
   <id>ibiblio</id>
   <mirrorOf>central</mirrorOf>
   <name>Human Readable Name for this Mirror.</name>
   <url>http://mirrors.ibiblio.org/maven2/</url>
</mirror>
然后重新输入命令,如果还不行,再在网上找一个镜像地址,再重试;遇到需要输入的地方,直接回车,至出现:


表示创建成功。创建后的项目目录结构为:

D:/maven/demo
 - src
  - main/java/com/chenqa/maven/App.java
  - test/java/com/chenqa/maven/AppTest.java
 pom.xml
src/main/java下为项目的主代码目录,src/test/java为测试代码目录,pom.xml为项目的maven配置文件。查看代码会发现maven自动生成了一个非常简单的hello world例子。

此时执行mvn test命令,maven会执行测试代码。

执行mvn package命令,maven会自动执行打包命令,在target子目录里生成一个cho1-1.0-SNAPSHOT.jar文件

执行mvn clean命令,会删除target目录。

编辑pom.xml文件,增加项目构建配置,编辑后的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>
  <groupId>com.chenqa.maven</groupId>
  <artifactId>cho1</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>cho1</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
  <plugins>
	<plugin>
		<artifactId>maven-assembly-plugin</artifactId>
		<version>2.2</version>
		<configuration>
			<archive>
				<manifest>
					<mainClass>com.chenqa.maven.App</mainClass>
				</manifest>
			</archive>
			<descriptorRefs>
				<descriptorRef>jar-with-dependencies</descriptorRef>
			</descriptorRefs>
		</configuration>
		<executions>
			<execution>
				<id>make-assembly</id>
				<phase>package</phase>
				<goals>
					<goal>assembly</goal>
				</goals>
			</execution>
		</executions>
	</plugin>
  </plugins>
  </build>
</project>

然后再执行mvn clean package,在target目录会多出一个cho1-1.0-SNAPSHOT-jar-with-dependencies.jar文件,此文件为可以直接执行的jar文件:

进入target目录,执行java -jar cho1-1.0-SNAPSHOT-jar-with-dependencies.jar命令,系统输出了Hello World信息!



                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值