Maven_3_项目的创建

1.配置局部的项目依赖的版本

  	<plugins>
  		<!-- 插件配置 -->
  		<plugin>
  			<groupId>org.apache.maven.plugins</groupId>
  			<artifactId>maven-compiler-plugin</artifactId>
  			<version>3.1</version>
  			<configuration>
  				<!-- 源码的版本 -->
  				<source>1.8</source>
  				<!-- 编译目标版本 -->
  				<target>1.8</target>
  				<!-- 指定字符 -->
  				<encoding>utf-8</encoding>
  			</configuration>
  		</plugin>
  	</plugins>

2.配置全局的项目依赖

  <!-- 依赖的编写 -->
  <dependencies>
  	<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>

3.当将项目部署到 tomcat服务器上的时候,访问呢index.jsp并不会成功。


原因是因为,在项目的lib的目录下,会有 Servlet-api.jar 和 jsp-api.jar包,但是项目目录下的lib文件夹中也有,所以会发生jar包的重复的冲突。

4.依赖的Scope属性

compile
默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。
provided
跟compile相似,但是表明了dependency 由JDK或者容器(服务器)提供,例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。
使用这个时,不会将包打入本项目中,只是依赖过来。   
使用默认或其他时,会将依赖的项目打成jar包,放入本项目的Lib里
runtime
表示dependency不作用在编译时,但会作用在运行和测试时
test
表示dependency作用在测试时,不作用在运行时。
system
跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它

将依赖的Scope(作用范围) 设置为 provided即可。

5.总体回顾

原理总览:

项目目录:



猜你喜欢

转载自blog.csdn.net/StrawBerry_Uncle/article/details/80798927