使用 Eclipse 从 0 开始搭建一个 Maven 项目

准备工作

首先我们要下载 Eclipse,Maven 并安装,配置 Maven 环境变量。这些都是基本操作,这里不做叙述。我本地的版本分别是 Eclipse 2017 Maven 3.0.5 JDK1 .8 ,这里提一下,之前用的 Eclipse 比较老,所以项目一直跑不起来,后面换成 2017 之后,就行了。下面就截图给大家展示一下如何创建一个 Maven 项目。

关于 Eclipse 中的配置

一个新安装的 Eclipse ,我们需要配置以下几点,workspace 的编码格式,JSP 页面的编码格式,基础字体。


另外就是关于 Maven 的配置,设置 Maven 的版本信息和 Maven 整体的配置信息。如下图所示,分别配置版本信息并引入 setting.xml 文件。
配置 Eclipse 引入的 maven 版本

下图是配置 Maven 的配置文件 setting.xml,这里的配置文件中比较重要的是本地仓库的路径。会自动生成在下面。
配置 setting.xml

当我们选择了 Maven 中的 setting 配置文件之后,会自动的识别配置的本地仓库的位置,若是没有配置,会默认在 C:\用户\ XXX .m2\repository 创建仓库。建议配置一下。配置如下。
在这里插入图片描述

以上就是关于环境和配置的说明,下面就是一步一步的创建 Maven 项目了。

创建Maven项目步骤

1 选择 New Maven 项目,若是没有找到,可以去 other 里面找。
在这里插入图片描述

2 选择跳过骨架选择,什么意思呢?Maven 这个软件既然能管理 Java项目,那肯定是有一定要求的,比方说什么样的目录结构,这是不能错的,而 Java 项目又有多种形式,所以目录形式不太一样,我们这里就选择默认的骨架,即跳过骨架选择。
在这里插入图片描述

3 我们知道 Maven 中查找 jar 包是根据坐标来查找的,而这个坐标就是我们常说的什么公司/组织的哪个项目的什么版本,而下面就是为了在定位我们现在编写的这个 Maven 项目的地址。Group Id 为公司或组织名,Artifact Id 是项目名,而 Version 就是版本号,版本号后面跟的 SNAPSHOT 表示这个版本是“快照”版,也就是测试版。最下面的 Packageing 表示打包形式,这里我创建的是一个 web 项目,所以选择 war .
在这里插入图片描述
4 刚创建的项目就会报错,但是不要怕,后面还有错呢,这里根据提示可知,缺少 web.xml 文件,一个 web 项目怎么能没有这个文件呢。我们需要添加一个 web.xml 文件即可。注意,我们是在 webapp 文件下的 WEB-INF 下创建 web.xml 文件,所以要先创建一个文件夹。web.xml 文件,copy 一个就行。
在这里插入图片描述

5 解决上一步出现的之后的文件结构如下图。空的 web.xml文件,此时报错消失。
在这里插入图片描述
6 此时还存在一个问题,Maven 具有一键构建的功能,所以,自然,这个软件本身就内置了 JDK,但是内置的版本是 1.5,我们不想用这个呀,这时就需要 pom.xml 文件了,这个文件用于添加依赖的 jar 包和插件。我们需要将 JDK 1.8 以插件的形式的注入项目。
在这里插入图片描述

在 pom.xml 文件中添加如下配置即可。然而,项目又报错了…… 不用担心,选中项目右击 - Maven - update Project 搞定。

<build>
	<!-- 配置了很多插件,默认的 JDK版本是 1.5 改成  1.8 ,报错,项目右击,maven- update project-->
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.5.1</version>  
			<configuration>
				<source>1.8</source>
				<target>1.8</target>
				<encoding>UTF-8</encoding>
			</configuration>
		</plugin>
	</plugins>
  </build>
测试

其实到上面我们的 Maven 项目已经搭建完成,但是为了 测试呢, 我们需要写一个 Servlet ,来启动一下项目顺带说一下如何运行 Maven 项目。

新建 HelloServlet

创建 Servlet 肯定需要 jar 包的,首先要注入依赖。在 pom.xml 文件中添加如下配置。

<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.9</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.0</version>
			<scope>provided</scope>
		</dependency>
  </dependencies>

然后新建一个 Servlet 即可。这里注意了,要启动 Servlet 需要在 web.xml 中配置 Servlet 的,我这创建的时候就已经配置好了,可以直接使用了,在 doGet 方法中,有一行代码可在浏览器输出访问的项目名。 接下来就可以启动项目并访问一波了。

注意看,当我们在 pom.xml 文件中注入 jar 包后,即可在 Maven 依赖下面看到对应的 jar 包,而引入的路径就是在 setting.xml 中配置的,本地仓库的位置。
在这里插入图片描述

启动 Maven 项目

选中项目,右击 - run as - Maven build … 注意要带点点点的。
在这里插入图片描述

后面输入 Maven 项目一键构建的命令 tomcat:run 点击 run 即可。
在这里插入图片描述

控制台如下提示,项目启动正常。
在这里插入图片描述
正确访问 Servlet 即可。http://localhost:8080/hello/HelloServlet
在这里插入图片描述

关于项目的执行

下图中的几个选项的差别在哪?主要就是不同的 maven 命令,不同的命令有不同的效果。
我们首次运行的时候,选择 Maven build … 这样我们可以输入命令运行项目。
Maven build 默认执行的是上一次执行的命令。
Maven clear 用于清除已编译的文件
Maven install 生成 war 包,在 target 文件中。这里是 web 项目,所以是 war 包,若是 Java 项目,则是 jar 包。

在这里插入图片描述

错误记录

无法创建 Servlet

因为我之前用的 Eclipse 的版本较低,所以在项目中找不到创建 Servlet 的入口,需要手动设置一下,新版本的就不存在这个问题了。
在这里插入图片描述

Error loading WebappClassLoader / java.lang.ClassNotFoundException

这里问题应该是最多的,本质的原因就是 jar 找不到,找不到类,可能出现的问题的地方有很多,从最开始的设置本地仓库开始,到 pom.xml 文件是否引入 jar 包,或是引入成功了,但是 jar 没有引入到 web 部署的环境下类名肯定也找不到啊。如下图,表示正确引入 Maven 的依赖到 web 环境中。(这个页面是项目右击 - properties)
在这里插入图片描述
但是,即使是这样,还是依旧的报错,是不是心态都崩了,想开点,有个好方法,可能就是你用的 Eclipse 太老了,,,就像我之前那样。换一个就行了!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是搭建一个 Maven 的 Shiro 十分钟快速上手完整测试项目的步骤: 1. 创建 Maven 项目 首先,我们需要创建一个 Maven 项目。可以使用 Eclipse、IntelliJ IDEA 等 IDE,也可以使用 Maven 命令行创建。这里我使用 IntelliJ IDEA 创建 Maven 项目。 在 IntelliJ IDEA 中,选择 File -> New -> Project,在弹出的窗口中选择 Maven,然后点击 Next。 在 Create Maven Project 窗口中,填写 GroupId、ArtifactId 和 Version,然后点击 Next。 接着,在 New Project 窗口中,填写项目名称和项目路径,然后点击 Finish。 2. 添加 Shiro 依赖 在 pom.xml 文件中添加 Shiro 依赖: ```xml <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.7.1</version> </dependency> ``` 3. 配置 Shiro 在 src/main/resources 目录下创建 shiro.ini 文件,配置 Shiro: ```ini [users] # 用户名 = 密码, 角色1, 角色2, ... admin = admin123, admin guest = guest123, guest [roles] # 角色名 = 权限1, 权限2, ... admin = * guest = user:read [urls] # URL = 过滤器1, 过滤器2, ... / = anon /login = anon /logout = logout /admin/** = authc, roles[admin] /user/** = authc, roles[guest] ``` 以上配置文件定义了两个用户 admin 和 guest,admin 拥有 admin 角色,guest 拥有 guest 角色。admin 角色拥有所有权限,guest 角色只有 user:read 权限。配置了一些 URL 的访问规则,例如 /admin/** 表示必须登录并且拥有 admin 角色才能访问。 4. 编写测试代码 在 src/test 目录下创建一个测试类,编写测试代码: ```java import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.config.IniSecurityManagerFactory; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.Factory; import org.junit.Test; public class ShiroTest { @Test public void testLogin() { // 读取 shiro.ini 配置文件,并创建 SecurityManager Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini"); SecurityManager securityManager = factory.getInstance(); SecurityUtils.setSecurityManager(securityManager); // 获取当前用户 Subject currentUser = SecurityUtils.getSubject(); // 登录 UsernamePasswordToken token = new UsernamePasswordToken("admin", "admin123"); currentUser.login(token); // 判断是否登录成功 assert currentUser.isAuthenticated(); // 判断是否拥有 admin 角色 assert currentUser.hasRole("admin"); // 判断是否拥有 user:read 权限 assert currentUser.isPermitted("user:read"); // 退出登录 currentUser.logout(); // 判断是否退出成功 assert !currentUser.isAuthenticated(); } } ``` 以上测试代码首先读取 shiro.ini 配置文件,并创建 SecurityManager。然后获取当前用户,使用 admin 用户登录,判断登录是否成功,判断是否拥有 admin 角色和 user:read 权限,退出登录,判断是否退出成功。 5. 运行测试 在 IntelliJ IDEA 中,可以直接运行测试类,或者使用 Maven 命令运行测试: ``` mvn test ``` 测试结果应该全部通过。 至此,一个 Maven 的 Shiro 十分钟快速上手完整测试项目搭建好了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值