最近在写 springboot 项目时,需要使用多模块,遇到了许多问题。

1 如果程序使用了 java8 的一些特性,springboot 默认构建工具不支持。需要修改配置

。。。
</build>
</plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<testSource>1.8</testSource>
<testTarget>1.8</testTarget>
</configuration>
</plugin> </plugins>
</build>
。。。

2 对于资源文件,默认是在 src\main\resources 下,如果在其他目录需要使用,需要修改一下默认配置

<project>
。。。
<build>
。。。
</resources>
<!-- 如果资源文件在java源文件夹里,需要使用配置将其打包到classpath下,这样才可以找到 -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
。。。
</build> </project>

说明:对于前后端分离的项目,如果要将前端页面也打包到 jar 或 wa r包中,需要将这些作为资源加进来。

例如:我的静态资源 js,css,html...文件都放在 src/main/resources 文件夹下,该文件夹下所有文件都需要打包进来的话,可以作如下修改

<project>
。。。 <build>
。。。
<resources>
。。。
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**</include>
</includes>
</resource>
</resources>
</build>
</project>

3 对于多模块 springboot 项目,模块之间有依赖关系,最后需要将可访问的模块打包成jar文件。在Springboot项目中使用默认的构建插件,打出来的 jar 包不能独立运行。解决办法

修改 pom 构建配置

<build>
<finalName>demo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.demo.test.DemoApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<!-- 将所有的依赖jar包打包进 lib 文件夹里-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
...

springboot 多模块 maven 项目构建jar 文件配置的更多相关文章

  1. Maven项目导出jar包配置

    <!-- 第一种打包方式 (maven-jar-plugin), 将依赖包和配置文件放到jar包外 --> <build> <sourceDirectory>src ...

  2. <转>创建支持eclipse的多模块maven项目

    如何使用eclipse创建Maven工程及其子模块 1,首先创建一个父类工程   子模块继承父类工程      并在父类工程的pom.xml文件中定义引入的jar及其版本号     子模块可以引用 2 ...

  3. maven项目构建

    Maven是apache的一个开源项目.是一个用来把源代码构建成可发布的构件的工具. Maven的功能非常强大,可以认为是一个项目管理工具,不仅仅是一个构建工具. Maven本身的核心很小,但是可以在 ...

  4. IDEA中MAVEN项目打JAR包的简单方法

      Idea中为一般的非Web项目打Jar包是有自己的方法的,网上一搜就能查到很多. 但是如果是为Maven项目打Jar包,其实是很简单的,因为maven本身就有打Jar包的命令.   最简单的方法 ...

  5. (转)Maven学习总结(二)——Maven项目构建过程练习

    孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(二)——Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项 ...

  6. Maven学习总结(2)——Maven项目构建过程练习

    Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建 ...

  7. 多模块Maven项目怎样使用javadoc插件生成文档

    需求 近期要对一个项目结构例如以下的Maven项目生成JavaDoc文档. Project                         |-- pom.xml                   ...

  8. 多模块Maven项目如何使用javadoc插件生成文档

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   需求 最近要对一个项目结构如下的Maven项目生成JavaDoc文档. Project                  ...

  9. Maven项目导出jar包,包含依赖

    1. Maven项目导出jar包,包含依赖:mvn dependency:copy-dependencies package 2. 可以在Project创建lib文件夹,输入以下命令:mvn depe ...

随机推荐

  1. java线程同步实的现方式

    为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他 ...

  2. web前端开发,如何提高页面性能优化?

    内容方面: 1.减少 HTTP 请求 (Make Fewer HTTP Requests) 2.减少 DOM 元素数量 (Reduce the Number of DOM Elements) 3.使得 ...

  3. exception java.lang.OutOfMemoryError: Java heap space

      1.情景展示 java内存溢出异常,将程序代码问题排除在外,如何增大JVM的使用内存? 2.解决方案  在eclipse中的解决办法:增大你要运行的测试类的内存分配. 点击运行或debug按钮旁的 ...

  4. qtp descriptive programming multiple language(多语言支持)

    so easy, 1,use the descriptive programming; 2,use the | chracter to seperate the different language ...

  5. JavaScript的NaN-唯一 一个自己不等于自己的对象!!

    JavaScript的NaN为什么不等于NaN 在JS中 Object === Object 感觉没有任何问题 这两个都代表的一个东西 但是如果你试过 NaN === NaN 是返回false为什么呢 ...

  6. Oracle自学笔记(一)

    1.创建用户并指定表空间 create user gy_3004 identified by gy_3004 default tablespace gy_3004_data temporary tab ...

  7. 推荐一款VS2008代码增强插件——MetalScroll

    时光如水,岁月如歌.虽然现在已经是2013年底马上就要步入2014了,但还是有很多人在使用VS2008开发项目,今天要推荐一款VS2008(同时支持VS2005,但不支持VS2010)代码增强插件给仍 ...

  8. Android中如何让DialogFragment全屏(DialogFragment fullscreen)

    这个问题很让人纠结,因为我要在popopwindows里面使用fragment,但是在popopwindows里面找不到它的父控件,于是转战使用DialogFragment,但是让它全屏是一件很头疼的 ...

  9. ubuntu设置自动关机

    windows可以设置自动关机时间.那么ubuntu的命令是什么呢?   首先要能拿到sudo权限,还好我是在home下编译的,一路上都不用sudo,因此可以把sudo给shutdown了.呵呵   ...

  10. Swift3 URL编码、解码用法addingPercentEncoding

    我们请求一个url时,最好要对其编码,转换成url识别的字符,以应对url里可能存在的中文.特殊符号等. swift3之前用法: url.stringByAddingPercentEscapesUsi ...