1.點擊File >> New >> Project,選中Spring Initializr,選擇項目JDK版本,點擊下一步便可。java
2.設置項目的基本信息和相關配置web
3.選擇spring boot版本和項目的基本依賴spring
4.選擇項目的位置apache
5.選擇打開一個新窗口maven
6.項目的基本結構ide
以上就是單個微服務項目搭建的基本過程函數
1.搭建一個主項目spring-boot
2.刪除src目錄,獲得如下項目結構微服務
3.打開pom文件獲得如下內容工具
由於主項目不須要打包,因此刪除項目打包配置,並把打包方式改成pom:修改結果以下
若是微服務比較多,項目比較複雜,多個項目可能使用同一個類和共用配置,因此咱們能夠把一些公用的代碼提取出來,放到一個微服務裏面供其餘微服務使用。
1.創建common模塊
右鍵選中項目 >> New >> Module
打開Module新建窗口,新建過程和普通微服務新建過程通常無二(能夠參考第二節)
由於公共微服務不須要啓動和測試,因此能夠刪除啓動類和test目錄
2.修改主項目master的pom文件
3.修改微服務common的pom文件(common也不須要打包)
幾乎全部項目都有用戶模塊,咱們能夠將用戶模塊單獨提出來,做爲一個微服務使用
1.新建用戶微服務模塊
2.修改主項目master的pom
3.修改微服務sysuser的pom,同時引入common
以上多模塊項目就搭建完成了
在項目src下新建一個lib文件夾,把全部第三方jar放入
在pom文件中配置dependency依賴
<dependency> <groupId>fileserver-client</groupId> <artifactId>fileserver-client</artifactId> <version>1.0.0</version> <scope>system</scope> <systemPath>${basedir}/src/lib/fileserver-client.jar</systemPath> </dependency>
這樣項目就能夠編譯成功,但項目打包的時候會報jar找不到的錯誤
項目打包命令:mvn -Dmaven.test.skip –U clean package
能夠整個項目一塊兒打包,
也能夠單個微服務打包,不過這裏有一個地方須要注意
common打包出來的應該是不可執行的jar包,因此不要在common的pom中定義spring-boot-maven-plugin插件,由於這個SpringBoot插件會在Maven的package後進行二次打包,目的爲了生成可執行jar包,若是common中定義了這個插件,會報錯提示沒有找到main函數。這時你就能夠去打包sysuser項目了,固然打包的時候可能仍是不行,這裏還有一個小坑,若是仍是不能進行打包的話,那麼就install一下master項目,也就是總目錄下的pom文件對應的install操做,這樣再打包front項目基本上就沒有問題了,老鐵,都是經驗呀,但願對大家有幫助
在項目中設置打包類型
<packaging>jar</packaging>
修改打包插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.ccdc.microservice.upload.UploadApplication</mainClass> <layout>ZIP</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> <resources> <resource> <directory>src/lib</directory> <targetPath>BOOT-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <targetPath>BOOT-INF/classes/</targetPath> </resource> </resources> </build>
1.在項目中設置打包類型
<packaging>war</packaging>
2.修改打包插件
<build> <plugins> <!--設置maven-war-plugins插件,不然外部依賴沒法打進war包--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> <resource> <directory>src/lib</directory> <targetPath>WEB-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </resource> </webResources> </configuration> </plugin> </plugins> </build>
2.重寫應用啓動類
@SpringBootApplication public class UploadApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(UploadApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(UploadApplication.class); } }