<build> <!-- jar包名 --> <finalName>SearchIntegration</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- 指定配置文件目录,这样jar运行时会去找到同目录下的resources文件夹下查找 --> <manifestEntries> <Class-Path>resources/</Class-Path> </manifestEntries> </archive> <!-- 打包时忽略的文件(也就是不打进jar包里的文件) --> <excludes> <exclude>**/**</exclude> </excludes> </configuration> </plugin> <!-- 复制资源文件 --> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <!-- 资源文件输出目录 --> <outputDirectory>${project.build.directory}/resources</outputDirectory> <resources> <resource> <directory>src/main/resources</directory> </resource> </resources> </configuration> </execution> </executions> </plugin> <!-- springboot repackage --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
上述执行打包后,会在target目录下生成jar包和resources文件夹,将jar包和resources文件夹复制到同一目录下。java
执行运行jar包命令:java -jar xxx.jar 便可。spring
<build> <!-- jar包名 --> <finalName>SearchIntegration</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- 指定配置文件目录,这样jar运行时会去找到同目录下的resources文件夹下查找 --> <manifestEntries> <Class-Path>resources/</Class-Path> </manifestEntries> </archive> <!-- 打包时忽略的文件(也就是不打进jar包里的文件) --> <excludes> <exclude>**/**</exclude> </excludes> </configuration> </plugin> <!-- 复制资源文件 --> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <!-- 资源文件输出目录 --> <outputDirectory>${project.build.directory}/resources</outputDirectory> <resources> <resource> <directory>src/main/resources</directory> </resource> </resources> </configuration> </execution> </executions> </plugin> <!-- 分离lib --> <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> <!-- 依赖包输出目录 --> <outputDirectory>${project.build.directory}/lib</outputDirectory> <excludeTransitive>false</excludeTransitive> <stripVersion>false</stripVersion> <!-- 依赖包的做用域 --> <includeScope>runtime</includeScope> </configuration> </execution> </executions> </plugin> <!-- springboot repackage --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <layout>ZIP</layout> <addResources>true</addResources> <includes> <include> <groupId>non-exists</groupId> <artifactId>non-exists</artifactId> </include> </includes> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
对上述依赖包的做用域说明:apache
在定义项目的依赖项的时候,咱们能够经过scope来指定该依赖项的做用范围。scope的取值有compile、runtime、test、provided、system和import。
compile:这是依赖项的默认做用范围,即当没有指定依赖项的scope时默认使用compile。compile范围内的依赖项在全部状况下都是有效的,包括运行、测试和编译时。
runtime:表示该依赖项只有在运行时才是须要的,在编译的时候不须要。这种类型的依赖项将在运行和test的类路径下能够访问。
test:表示该依赖项只对测试时有用,包括测试代码的编译和运行,对于正常的项目运行是没有影响的。
provided:表示该依赖项将由JDK或者运行容器在运行时提供,也就是说由Maven提供的该依赖项咱们只有在编译和测试时才会用到,而在运行时将由JDK或者运行容器提供。
system:当scope为system时,表示该依赖项是咱们本身提供的,不须要Maven到仓库里面去找。指定scope为system须要与另外一个属性元素systemPath一块儿使用,它表示该依赖项在当前系统的位置,使用的是绝对路径。springboot
对maven的一些路径进行说明,这些都是内置属性(Maven预约义能够直接使用):maven
${basedir} 项目根目录
${version}表示项目版本;
${project.basedir}同${basedir};
${project.version}表示项目版本,与${version}相同;
${project.build.directory} 构建目录,缺省为target
${project.build.sourceEncoding}表示主源码的编码格式;
${project.build.sourceDirectory}表示主源码路径;
${project.build.finalName}表示输出文件名称;
${project.build.outputDirectory} 构建过程输出目录,缺省为target/classeside
maven的一些命令:spring-boot
mvn clean 把target目录删掉
mvn clean compile 编译项目至target目录
mvn clean package 编译+打包 至target目录
mvn clean install 编译+打包 至target目录 而后安装到本地仓库
mvn clean deploy 上传jar包到远程仓库
mvn javadoc:jar 打包javadoc文档
若是须要将源码上传到远程仓库,则需deploy,而后再在pom文件中配置远程仓库的地址等信息。测试
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.0.1</version> <configuration> <attach>true</attach> </configuration> <executions> <execution> <phase>compile</phase> <!--指定绑定的声明周期阶段--> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin>