maven中让Web工程依赖Java工程

117 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

让Web工程依赖Java工程

观念

明确一个意识:从来只有Web工程依赖Java工程,没有Java工程反过来依赖Web工程。(war包里面放jar包,而不能jar包里面放war包)

本质上来说,Web工程依赖的Java工程其实就是Web工程里导入的jar包。最终Java工程会变成jar包,放在Web工程的WEB-INF/lib目录下。

操作

在对应Web工程的pom.xml中,找到dependencies标签,在dependencies标签中做如下配置:

<!-- 配置Java工程对pro01-maven-java的依赖 -->
<!-- 具体的配置方式:在dependency标签内使用坐标实现依赖 -->
<dependency>
    <groupId>com.atguigu.maven</groupId>
    <artifactId>pro01-maven-java</artifactId>
    <version>1.0-SNAPSHOT</version>
    <scope>compile</scope>
</dependency>

👆其中scope标签可写可不写,compile就是其默认值

在Web工程中,编写测试代码

①补充创建目录

pro02-maven-web\sec\test\java\com\atguigu\maven

②确认Web工程依赖了junit
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>
③创建测试类

把Java工程的CalculatorTest.java类复制到pro02-maven-web\sec\test\java\com\atguigu\maven目录下

执行maven命令

①测试命令

mvn test

说明:测试操作中会提前自动执行编译操作,测试成功就说明编译也是成功的

②打包命令

mvn package

通过查看war包内的结构,我们看到被Web工程依赖的Java工程确实是会编程Web工程下的WEB-INF/lib目录下的jar包

③查看当前Web工程所依赖的jar包的列表

mvn dependency:list

mvn dependency:tree//以树形结构列出

坐标格式:groupId:artifactId:打包方式:version:依赖的范围

这样的格式虽然和我们XML配置文件中坐标的格式不同,但是本质上还是坐标信息,大家还是需要能够认识这样的格式,将来从maven命令的日志或错误信息中看到这样格式的信息,就能够识别出来这是坐标。进而根据坐标到maven仓库找到对应的jar包,用这样的方式解决我们遇到的报错的情况。