当前位置: 首页 > 图灵资讯 > 技术篇> idea中设置maven和依赖管理以及常用属性

idea中设置maven和依赖管理以及常用属性

来源:图灵教育
时间:2023-05-29 14:06:49

1.IDEA集成Maven191.1在idea中设置maven,使idea与maven相结合。19

maven内置在idea中,一般不使用内置,因为不方便用内置修改maven的设置。

使用自己安装的maven需要覆盖idea中的默认设置。让idea指定maven安装位置等信息

1.2配置入口19

①:配置当前工程设置,file--settings---Build,Excution,Deployment--BuildTools

--Maven

MavenHomedirectory:maven安装目录

UserSettingsFile:conf/maven安装目录setting.xml配置文件

LocalRepository:本机仓库目录位置

idea中设置maven和依赖管理以及常用属性_ide

--BuildTools--Maven--Runner

VMOptions:-DarchetypeCatalog=internal

JRE:您项目的jdk

idea中设置maven和依赖管理以及常用属性_ide_02

-DarchetypeCatalog=internal,创建maven项目时,模板文件会在网上下载,使用比较大-DarchetypeCatalog=internal,无需下载,创建maven项目速度快。

②:新建工程设置配置后,file--othersettings--Settingsfornewproject2

File---->Settings:设置maven安装主目录和mavensettings.xml文件和当地仓库的位置。

2.IDEA创建Maven版java工程212.1maven-archetype-quickstart:21-22普通java项目

idea中设置maven和依赖管理以及常用属性_java_03

代码在main22com.bjpowernodeHelloMaven

package com.bjpowernode;//写一个简单的类别  22public class HelloMaven {public int add(int n1,int n2){return n1+n2;}public static void main(String[] args){HelloMaven hello = new HelloMaven();int res = hello.add(10,20);System.out.println("10+20="+res);}}

test23com.bjpowernodeTestHelloMaven

package com.bjpowernode;import org.junit.Assert;import org.junit.Test;//测试23public class TestHelloMaven {@Testpublic void testAdd(){System.out.println(“=========testadd测试add方法”;HelloMaven hello = new HelloMaven();int res = hello.add(10,20);///判断Assert是否正确.assertEquals(30,res);}@Testpublic void testadd2(){System.out.println(++++++testadd测试add方法);HelloMaven hello = new HelloMaven();int res = hello.add(10,20);///判断Assert是否正确.assertEquals(30,res);}}

在idea中设置maven、依赖管理和常用属性_java_04'

3.maven-archetype-webapp:web工程24

idea中设置maven和依赖管理以及常用属性_java_05

3.1创建缺省文件夹244

src-main-java/resources,src-test-java/resources

idea中设置maven和依赖管理以及常用属性_ide_06

3.1.1.将文件夹标记为源码文件夹24

File->ProjectStructure,选择Modules:在右边找到java机构,上面有一个“Maskas点击Sources,

这意味着它是源代码类

idea中设置maven和依赖管理以及常用属性_java_07

4.代码演示24代码在maincom.bjpowernode.controllerHelloServlet

package com.bjpowernode.controller;import jakarta.servlet.ServletException;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;///写一个简单的servlet  24public class HelloServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text;html;charset=utf-8");PrintWriter pw = response.getWriter();pw.println("Hello Maven web");pw.flush();pw.close();}}

web.xml

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>HelloServlet</servlet-name><servlet-class>com.bjpowernode.controller.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping></web-app>

tomcat10依赖

<!--    Jarr加入servlet依赖servlet--><dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>5.0.0</version><scope>provided</scope></dependency><!--    jsp依赖jsp的jar包--><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version><scope>provided</scope></dependency>

index.jsp

<%@ page contentType="text/html;charset=utf-8" language="java" %><html><body><h2>Hello World!</h2><a href="hello">Helloservet访问</a></body></html>

5.使用scope表示依赖范围285.1。

compile值scope,test,provided,默认是compile

scope:表示依赖使用范围,即在maven建设项目的那些阶段发挥作用。

编译、测试、包装、安装maven建设项目,部署过程(阶段)

5.1.test28依赖于1junit

test只在测量只有在试验阶段才有效

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.11</version>

<scope>test</scope>

</dependency>

5.1.2compile28

编译、测试、包装、安装compile

<dependency>

<groupId>a</groupId>

<artifactId>b</artifactId> b.jar

<version>4.11</version>

<scope>compile</scope>

</dependency>

1.1.3.provided28

编译provided,测试

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>3.1.0</version> servlet.jar

<scope>provided</scope> 提供者

</dependency>

5.2总结28

依赖的范围

依赖范围:compile、test、provided,默认情况下,compile

idea中设置maven和依赖管理以及常用属性_maven_08

你在写项目中使用的所有依赖(jar),本地仓库必须有。

没有必要通过maven下载,包括provided。

在servlet中,您需要继承Httpservlet(provided),您使用的Httpservlet是maven仓库。

当您的编写程序在tomat服务器中运行时,您的程序中不包含servlet的jarr

因为tomcat提供servlet.jar

6.maven常用操作3006.1maven属性设置30

设置maven的常用属性

6.1.1maven全局变量30

自定义属性

1.通过自定义标签声明变量(标签名称为变量名)

2.在pom.使用${标签名}在xml文件中的其他位置使用变量值

自定义全局变量通常是定义所依赖的版本号。当您的项目使用多个相同的版本号时,首先使用全局变量定义,然后使用${变量名}

6.2资源插件30-31

<build>

<resources>

<resource>

<directory>src/main/java</directory><!--所在的目录-->

<includes><!--包括目录下的.properties,.xml 扫描所有文件-->

<include>**/*.properties</include>

<include>**/*.xml</include>

</includes>

<!--filtering 选项 false 不使用过滤器, *.property 它已经起到了过滤的作用 -->

<filtering>false</filtering>

</resource>

</resources>

</build>

2.2.1作用:30-31

1. 默认不使用resources时, 当maven执行编译代码时, 会把src//main/resource目录中的文件复制到target/classes目录中。对于src//main不处理java目录下的文件不会复制到target/classes目录中

2. 但是,我们的程序需要在SRC//main在java目录下,当我执行java程序时,我需要使用src/main/java目录下的文件需要告诉mavenmvn compile src/main在java目录下的程序中,需要将文件复制到target/clases目录中,需要在这个时候<build></build>种加入<resources>