Maven创建一个Servlet项目(五)上

简介: Maven创建一个Servlet项目(五)

一. Maven 两个项目的引用依赖


先来稍微用实例讲解一下,两个Maven jar类型的项目是如何进行依赖的, 感受一下,Maven的强大之处。


项目B 依赖于项目A 的某些类。


一.一 创建 项目A


(只是简单创建,不会创建的可以看第二章内容)


打开 eclipse, 文件—>新建—>其他–>找到Maven—>选择 Maven-Project


2019102417335178.png


20191024173549391.png


20191024173555868.png


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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.yjl</groupId>
  <artifactId>MavenA</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</project>


在 MavenA 项目下,在 src/main/java 创建一个类 Hello, 里面返回一下老蝴蝶的名字。


package com.yjl;
/**
 * @author 岳泽霖
 */
public class Hello {
  public String getName(){
    return "岳泽霖,花名 两个蝴蝶飞";
  }
}


一.二 创建项目B


与上面是同样的操作步骤。


2019102417361571.png


在 src/main/java 中创建一个 MyHello 类。


package com.yjl;
/**
@author 岳泽霖
*/
public class MyHello {
  public static void main(String []args){
    Hello hello=new Hello();
    System.out.println(hello.getName());
  }
}


会报 Hello 类没有找到的错误。


要想 MyHello 类可以调用 项目A里面的 Hello 类, 按照以前的做法,是将 项目A导出成 一个jar包,放置在 B 下面,添加到路径下,这样B 就可以引用了。 这一点也是与 Maven 一样的,但Maven 并不需要这么处理。


直接点击 MavenB 里面的 pom.xml ,选择第二个 Dependencies 选项卡,点击添加 依赖,搜索 MavenA, 发现可以搜索到,直接添加 Maven A依赖


2019102417363397.png


就可以发现 在 pom.xml 中添加了依赖


 <dependencies>
    <dependency>
      <groupId>com.yjl</groupId>
      <artifactId>MavenA</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies>


与创建 MavenA时的 pom.xml 里面的内容是一致的。


不需要 再将 MavenA 打包后放置在 MavenB里面。


一.三 更新项目,解决出错的常用方法


发现,这个时候,虽然添加了依赖,但还是显示报错。


20191024173555868.png


不应该啊,已经添加 Hello.java 的依赖了啊 。 切记,一定要记住 Maven 工程中这种情况, 要更新一下 Maven项目。


选中项目B, 右键选中Maven, 选中 Update Project, 选中 MavenB, 进行确定即可。


20191024173706371.png


20191024173712766.png


这样,就发现项目A 已经导入进来了。


运行 MyHello.java , 以Application 的方式运行即可。控制台打印输出。


20191024173719728.png


一.四 直接修改项目,直接更新Jar 包。


上面的,普通的项目也可以做到了,没有什么骄傲的啊。 如果这个时候再修改 项目A 里面的内容,即 项目A的 Hello.java 里面的getName() 方法, 项目B要引用该怎么办呢? 先将修改好的项目A重新导出 Jar包,然后再放置到 MavenB 里面,重新运行B.


而 Maven 完全不需要这样。


如果你修改 Hello.java 中getName() 的方法返回值,如:


public String getName(){
    return "岳泽霖,原名岳建立";
  }


这个时候,不需要任何操作,只需要直接去项目B 下运行 MyHello.java 即可,控制台会自动打印新的输出语句。


20191024173728620.png


为什么可以直接运行呢,这就是 jar版本中 SNAPSHOT 快照的作用了。 关于快照的作用,可以看老蝴蝶第三章写的内容。


这只是Maven 强大的作用之一而已,而且是小小的之一。


Maven 的Jar项目,没有什么好讲的,主要的还是Web 项目。

相关文章
|
7天前
|
Java Apache Maven
Maven 项目文档
在`C:/MVN/consumerBanking`中创建Maven Java项目,使用命令`mvn archetype:generate`生成基础结构。确保`pom.xml`包含`maven-site-plugin`和`maven-project-info-reports-plugin`,版本至少为3.3和2.7,以避免`NoClassDefFoundError`。运行`mvn site`生成文档。
|
13天前
|
Java 编译器 Maven
使用intellij idea搭建SSM架构的maven项目 详细
使用intellij idea搭建SSM架构的maven项目 详细
33 4
|
7天前
|
Java Apache Maven
Maven 项目文档
在`C:/MVN/consumerBanking`,使用`mvn archetype:generate`命令创建Java项目后,确保更新`pom.xml`,添加`maven-site-plugin`和`maven-project-info-reports-plugin`,至少版本3.3和2.7。运行`mvn site`时遇到`NoClassDefFoundError`,需升级`maven-site-plugin`至3.3以上以解决。
|
2天前
|
存储 安全 Java
2024ide构建maven项目是总是卡在解析Maven依赖项目 加速方案
2024ide构建maven项目是总是卡在解析Maven依赖项目 加速方案
12 4
2024ide构建maven项目是总是卡在解析Maven依赖项目 加速方案
|
12天前
|
Java Apache Maven
Maven 项目文档
在C:/MVN下,使用`mvn archetype:generate`命令创建`consumerBanking`项目,设置相关参数。确保`pom.xml`包含最新`maven-site-plugin`(至少3.3版本)和`maven-project-info-reports-plugin`(至少2.7版本),以避免`NoClassDefFoundError`。若未配置,执行`mvn site`会出错。
|
9天前
|
Java Apache Maven
Maven 项目文档
使用 Maven 创建 `consumerBanking` 项目
|
2天前
|
Java Apache Maven
Maven 项目文档
使用Maven创建`consumerBanking`项目,执行`mvn archetype:generate`命令初始化。确保`pom.xml`包含`maven-site-plugin`至少版本3.3和`maven-project-info-reports-plugin`至少版本2.7,以避免NoClassDefFoundError。升级插件解决文档构建问题。
|
2天前
|
Java Maven
Maven项目打包成jar项目后运行报错误: 找不到或无法加载主类 Main.Main 和 jar中没有主清单属性解决方案
Maven项目打包成jar项目后运行报错误: 找不到或无法加载主类 Main.Main 和 jar中没有主清单属性解决方案
9 0
|
2天前
|
缓存 Java Maven
IDEA如何把MAVEN项目打包成jar包并且用命令行启动
IDEA如何把MAVEN项目打包成jar包并且用命令行启动
8 0
|
7天前
|
Java 数据库连接 Apache
JavaWeb基础第二章(Maven项目与MyBatis 的快速入门与配置)
JavaWeb基础第二章(Maven项目与MyBatis 的快速入门与配置)

推荐镜像

更多