Maven通过一套命令可以完成整个项目构建过程,命令不太好掌握,通常我们会将maven和其它的一些集成工具配合使用,发挥最大的能量。
再配置一个全局的
创建一个maven工程
需求:创建的maven版的java工程,实现使用log4j记录日志。
工程结构
pom.xml
补main下的resources目录
实现:
Log4j -----》需要jar ----->在pom.xml中配置log4j的jar包即可 --àlog4j的坐标是什么?-à根据坐标首先去本地仓库中查找,如果有,则直接使用,如果没有则先去中央仓库(阿里镜像)中下载至本地仓库,再使用。
技巧:
Log4j的配置文件拷贝到resources下:
测试:
几点说明:
(1)pom.xml中,正确编写了jar包的坐标信息,仍然报红,
尝试如下解决方式
右键pom.xml
(2)maven的工程目录结构和传统工程的区别
(3)target目录
和src平级,存放的是class字节码文件
(4)执行clean命令,希望在idea中执行(现在idea和maven做了集成)
右键clean----》
(5)执行compile命令
(6)maven导包,有时还会把一个包的其他依赖包同步导入,非常方便
(7)通过坐标信息去仓库中查找jar的过程
以junit为例
去仓库中
找文件夹名称叫 groupId:junit
进入junit目录,再找artifactId:junit的子目录
再进入junit目录(artifactId)
找目录名 version的目录 4.13.2
最后进入4.13.2 找jar包名为
artifactId-version.jar
思考:举一反三,log4j的查找过程
(8) https://search.maven.org/
如果我需要使用其他版本的jar包,怎么办?
去中央仓库
Central Repository: 找
Junit切换一个版本
(9)找版本时,千万不要使用带beta,alph等字样的jar包。
自定义jar包
已知一个jar,通过造坐标+造目录+造jar名,完成maven的坐标管理。
自己封装好的jar包和maven协同工作
办法
(1)造一个坐标
(2)仓库中造目录
com/njwbhz/jdbc/1.0.0/jdbc-1.0.0.jar
(3)重命名jar
(4)测试
package com.njwbhz;
import com.njwbhz.jdbc.util.DateUtil;
import org.apache.log4j.Logger;
import java.util.Date;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
Logger logger = Logger.getLogger(App.class);
logger.info("test_maven");
System.out.println(DateUtil.dateToStr(new Date() , "yyyy-MM-dd"));
}
}
组件安装
需求:封装一个字符串组件,需要安装到仓库中,供其他的工程使用。
<?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.njwbhz</groupId>
<artifactId>commons</artifactId>
<version>1.0.0</version>
<name>commons</name>
</project>
package com.njwbhz.util;
public class StringUtil {
public static boolean isEmpty (String str) {
if (null == str || "".equals(str.trim())) {
return true;
} else {
return false;
}
}
}
利用maven的自动安装命令完成组件的安装。
其他的项目中引用commons-1.0.0.jar
<?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.njwbhz</groupId>
<artifactId>maven-hello</artifactId>
<version>1.0.0</version>
<name>maven-hello</name>
<!--配置工程以来的所有jar包信息-->
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
</dependency>
<dependency>
<groupId>com.njwbhz</groupId>
<artifactId>jdbc</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.njwbhz</groupId>
<artifactId>commons</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
package com.njwbhz;
import com.njwbhz.jdbc.util.DateUtil;
import com.njwbhz.util.StringUtil;
import org.apache.log4j.Logger;
import java.util.Date;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
Logger logger = Logger.getLogger(App.class);
logger.info("test_maven");
System.out.println(DateUtil.dateToStr(new Date() , "yyyy-MM-dd"));
System.out.println(StringUtil.isEmpty(" "));
}
}