<packaging>标签表示打包成jar包还是war包
<build>标签表示构建的方式
<resource>
<targetPath>${project.build.directory}/classes</targetPath>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
表示Build过程中
targetPath存放路径
directory 对应的项目的目录
filtering开启过滤
includes包含那些文件
<!-- 结合com.alibaba.dubbo.container.Main -->
<resource>
<targetPath>${project.build.directory}/classes/META-INF/spring</targetPath>
<directory>src/main/resources/spring</directory>
<filtering>true</filtering>
<includes>
<include>spring-context.xml</include>
</includes>
</resource>
本来dubbo是会自动加载META-INF/spring配置(默认加载无需配置)
但是这里可以更改加载位置,通过directory去更改加载路径
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<classesDirectory>target/classes/</classesDirectory>
<archive>
<manifest>
<mainClass>com.alibaba.dubbo.container.Main</mainClass>
<!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 -->
<useUniqueVersions>false</useUniqueVersions>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
useUniqueVersion 注意这个参数!
classpathPrefix 路径参数,依赖的jar包都放入一个lib中
上面这段配置会生成MANIFEST.MF会在这个文件中展示
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<type>jar</type>
<includeTypes>jar</includeTypes>
<useUniqueVersions>false</useUniqueVersions>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
打成的jar包放入哪个目录
<import resource="classpath:spring/spring-mybatis.xml" />
<import resource="classpath:spring/dubbo-consumer.xml" />
<import resource="classpath:spring/dubbo-provider.xml" />
spring-context中必须配置其他相关的xml的classpath下的全路径,因为spring-mybatis.xml会在打包的过程中被移动
MAVEN的本地仓库配置
如果想在eclipse中使用maven需要在User Setting中设置Settings.xml以及Repository的路径,打包的jar war 以及对应的依赖jar都会在其中
注意!如果一个基本项目想要进行打包jar(maven install )那么他的相关依赖的jar必须先于它打包成功(成功之后才能依赖)
因此要先打包依赖项目才不会报错
打包完成后
都会出现在target文件夹中
web层
<packaging>war</packaging>
<build>
<finalName>AccessControlWeb</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<attachClasses>true</attachClasses>
</configuration>
</plugin>
</plugins>
</build>