Java全栈程序员之06:IDEA中MAVEN项目依赖及运行
MAVEN已经成为事实上的企业项目开发中的项目类型。无论是IDEA还是Eclipse,都已经默认支持创建MAVEN项目。严格意义上来说,MAVEN不是一种新的JavaEE项目类型。它凌驾于所以的项目类型上面,是对之前项目的一种“管理”。如果我们创建了MAVEN项目,那么会很方便的干这两件事情:
1:管理所有的依赖包。其中一个例子是,以往我们要引入一个第三方的jar包,需要把该jar包从网上(或者其它地方)下载回来,然后引入到项目中。而现在,我们只要在pom文件中引入改jar包的标识符,然后maven插件会自动帮我们下载该jar包并引入到项目中来。
2:方便我们编译、执行、部署项目。
且看maven项目在IDEA中如何运行。
1.创建parent项目
我假设你的项目,不会简单到只有一个Project(在IDEA中更多的称之为Module),所遇,基于一般的做法,我们首先会创建一个父项目。
该父项目会定义一些通用配置,比如会整个系统所使用的JDK版本,或者引入的通用的jar包的版本。
选择new project,如下,

Next,在此页面,定义groupid和标识符和版本号,

Next,定义项目名,module名。注意,module名很重要,我们定义为:test01.parent,

接下来,可以enable auto-import,

Pom文件就是配置文件,是parent中我们唯一需要动的文件,在这个文件中,我们目前要做的就是把项目的JDK版本定义为1.10,如下,
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zuikc</groupId>
<artifactId>test01</artifactId>
<packaging>pom</packaging>
<version>1.0.1</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<java.version>1.10</java.version>
<maven.compiler.source>1.10</maven.compiler.source>
<maven.compiler.target>1.10</maven.compiler.target>
</properties>
</project>
2.创建工具项目
有了parent,让我们创建工具项目吧。

Next。注意,下图红框中的设置是自动带过来的,一般不需要动。Module的标识取名为test01.common。一般这种项目,在实际的工作中,是用来放置各种工具类的。

Next,

Finish之后,可以看到当前module的pom文件中,指定了parent。

为了演示期间,让我们随便创建一个很简单的工具类吧,这个工具类中,只有一个加法方法。

如下,
package com.zuikc.test01.common;
public class Mather {
public static final int add(int a, int b){
return a+b;
}
}
3.创建UI层项目
接下来,让我们创建UI层。当然,实际工作中,可能你的设计是标准的三层架构,那无非也就是多创建几个module。另外,UI层可能是一个web project,也有可能是像本例一样是个console。那都无所谓,MAVEN项目的一个优点是,你甚至可以随意将一个console项目变成一个web project。
让我们继续创建UI层,

Next,

Next,

Finish。
在本项目的pom文件中,我们要设置自己依赖了common,所以,我们要配置下图红框中的内容。

现在,为了测试期间,让我们创建一个main类,

代码如下,
package com.zuikc.test01.ui;
import com.zuikc.test01.common.Mather;
public class Sample01 {
public static void main(String[] args) {
int re = Mather.add(1,2);
System.out.println(re);
}
}
4.exec-maven-plugin插件
要以MAVEN的形式来运行console项目,我们需要添加exec-maven-plugin插件。怎么添加呢?
很简单的,只要在UI项目的pom中增加如下,
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
看图,

当保存之后,maven就会从中央仓储(mvnrepository.com)中去下载这个插件(其实主要就是一些jar包)到本地。
5.配置运行console
打开配置,

点击+号,增加一个maven配置,

像如下进行配置,

保存后进行run,

第一次执行,会出现download,

这些down下来的文件是在哪呢?是在一个叫做maven本地仓储的地方,它默认就是idea安装目录的plugs下,如下所示:

Ok,回过头来说,如果执行成功就会出现下面的输出。

6.Maven clean和install
如果我们run的时候找不到common。就说明我们的common项目还没安装到maven的本地仓储中。那该怎么办呢?当然是install了。
有两种方式,可以打开maven的操作工作台,如下,

如图,

每个项目都有自己的lifecycle,可以在这个工作台中进行clean、编译或者install等。依次,我们install parent、common、ui。成功之后,我们就可以在本地仓储中看到自己编写的项目咯。
感谢关注“码农星球”。本文版权属于“码农星球”。我们提供咨询和培训服务,关于本文有任何困惑,请关注并联系我们。
Java全栈程序员之06:IDEA中MAVEN项目依赖及运行的更多相关文章
- Java全栈程序员之03:Ubuntu下安装idea
JetBrains的产品我曾经用过很长一段时间,它们是resharper和dotcover.VS号称宇宙最强IDE,直到它遇到了resharper,我们才知道,原来vs可以更好.DotCover是一个 ...
- Java全栈程序员之08:MAVEN+JAVA配置
从Spring3.0开始,Spring支持以Java配置的方式来代替XML配置.这一点说起来其实有点可笑,XML配置的方式最初被创建出来就是为了让配置与程序员无关.可是最终我们发现,绝大多数的那些配置 ...
- Java全栈程序员之01:做个Linux下的程序猿
Windows10正在成为史上口碑最差的Windows系统 (图侵删) 我曾经花了数次1小时去寻找解决方案去关闭自动更新,包括停掉服务.修改注册表等等.但是都没有成功. 微软自身是知道这个问题的,但就 ...
- Java全栈程序员之02:Ubuntu下Java环境安装、配置、测试
在上文讲完之后,我们手里的ubuntu只能算是一个上网机,什么也干不了,本篇我们将折腾它为开发机. 这里,我们这里假定你对linux体系是初级选手,所以本篇会讲的啰嗦一点,高手就出门左转吧. 1.安装 ...
- Java全栈程序员之07:IDEA中使用MAVEN构架生产级的Web项目
在上一篇我们介绍了如何在IDEA中使用MAVEN,以及如何创建依赖等.那么在这一篇中,我们就试图搭建一个生产级的解决方案,大家可以使用这个解决方案作为骨架代码来搭建自己的开发环境. 在这里,我们要完成 ...
- Java全栈程序员之05:Ubuntu下安装TOMCAT、集成到IDEA
使用idea绝不是开发一个Hello World这么简单,现在我们要使用idea进行企业级开发(也就是JavaEE)的准备了,那么首先,我们就得有一个web应用服务器.选什么呢?当然首选是大名鼎鼎的T ...
- Java全栈程序员之04:Ubuntu下安装MySQL、注册服务及Navcat
在安装MySQL之前,我们先来介绍一下Ubuntu下软件的安装方式.首先回顾下,我们安装JDK,使用的是后缀名为tar.gz的安装包.安装idea,使用的是tar.gz:那有没有别的安装方式呢? 1. ...
- Java全栈程序员之09:IDEA+GitHub
GitHub是源码托管站点,其依赖于Git这个源码管理工具来进行代码的托管.所以将我们的代码托管到GitHub之前,我们需要安装Git. 1.Git安装 可以通过输入git命令来确定是否在本机已经安装 ...
- [转]乐死我了,怎么样成为一个全栈程序员(Full Stack Developer),附我想专注的语言
受苏格拉底大神的启迪,我也来谈谈全栈.禅师:成为全栈工程师,这个问题等于如何成为全才,有可能吗码农:有可能,不过可能性比较低,因为达芬奇这类人毕竟是百年一遇的奇才.不过,因为我热爱这个行业,也有一定天 ...
随机推荐
- Python学习(二十) —— 前端之CSS
转载自http://www.cnblogs.com/liwenzhou/p/7999532.html 一.CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTM ...
- 51Nod1675 序列变换 数论 莫比乌斯反演
原文http://www.cnblogs.com/zhouzhendong/p/8665675.html 题目传送门 - 51Nod1675 题意 给定序列$a,b$,让你求满足$\gcd(x,y)= ...
- jdk 生成证书
1.生成客户端的私钥,客户端的证书 1)keytool -genkey -alias clientkey -keystore kclient.keystore -validity 36500 2) ...
- 实践出真知-所谓"java没有指针",那叫做引用!
java没有指针,那我们如何实现动态数组呢? 上篇评论提及 ”不仅有vector,还有ArrayList,还有List,可做选择“. "java没有指针",那叫做引用! 今天尝试了 ...
- ES6 系列之 defineProperty 与 proxy
,, ; ; ; } ; }); }; ; }); } });
- 【python】廖雪峰python教程学习--基础
No1: 目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的 No2: 用r''表示''内部的字符串默认不转义 No3: 以'''开头,敲回车可以换行 No4: 布尔 ...
- HDU1029 Ignatius and the Princess IV (水题)
<题目链接> 题目大意:给你一段序列,问你在这个序列中出现次数至少为 (n+1)/2 的数是哪个. 解题分析: 本题是一道水题,如果用map来做的话,就非常简单,但是另一个做法还比较巧妙. ...
- 机器学习实战笔记-k-近邻算法
机器学习实战笔记-k-近邻算法 目录 1. k-近邻算法概述 2. 示例:使用k-近邻算法改进约会网站的配对效果 3. 示例:手写识别系统 4. 小结 本章介绍了<机器学习实战>这本书中的 ...
- linux学习笔记 apache php mysql +linux
1 #yum remove httpd 2 #yum -y install httpd php-common php-devel php-gd php-mcrypt php-mbstring php- ...
- linux基础权限管理
1.linux系统中的文件类型:- 一般文件 存放数据d 目录文件 存放其他文件l 链接文件 类似于windows系统中的快捷方式b 区块设备文件 可以随时读取c 字符设备文件 需要顺序读 ...