springboot項目打包成jar供別的springboot工程依賴

前言
最近做了一個token申請和驗證服務,需要將服務打包成jar包,其他項目使用maven依賴,直接使用;

實現:
1、將token服務在本機跑起,確保能夠正常運行並調用;
2、將啓動類和測試類(無用)刪除掉;
在這裏插入圖片描述
3、將pom配置文件中maven插件改爲:
原先:

<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

修改爲:

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

4、執行maven的package進行打包,得到jar文件:
在這裏插入圖片描述
5、將jar文件發佈到本地maven中;

mvn install:install-file -Dfile=E:\wonProjectSpace\testSpace\tokenserver\target\tokenserver-1.0.1.jar -DgroupId=com.tzwy.token -DartifactId=tokenserver -Dversion=1.0.1 -Dpackaging=jar

6、創建測試工程testjar,pom配置文件直接引用:

 <dependency>
            <groupId>com.tzwy.token</groupId>
            <artifactId>tokenserver</artifactId>
            <version>1.0.1</version>
        </dependency>

7、在testjar服務啓動類中配置:
在這裏插入圖片描述

package com.test.jartest;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan(basePackages ={"com.tzwy.tokenserver.moduler.mappers"})
@SpringBootApplication(scanBasePackages = {"com.tzwy.tokenserver","com.test.jartest"})
public class JartestApplication {

    public static void main(String[] args) {
        SpringApplication.run(JartestApplication.class, args);
    }

}

在這裏插入圖片描述
指定我們的mapper掃描位置,可以是包;指定啓動類掃描位置;

8、在application.properties 配置文件中寫入配置,要知道我們依賴的jar文件與我們當前的testjar服務公用同一份配置文件;

#端口
server.port=8080
#上下文
server.servlet.context-path=/token

# 祕鑰
mytoken.safety.secret=0dcac1b6ec8843488fbe90e166617e34
# 失效時間(天)
mytoken.valid.time=5


#druid數據源配置
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/db_user_auth?useUnicode=true&characterEncoding=utf-8
spring.datasource.druid.username=root
spring.datasource.druid.password=1234
#連接池參數,初始數、最大數、最小數、獲取連接等待超時時間(毫秒)
spring.datasource.druid.initial-size=5
spring.datasource.druid.max-active=20
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-wait=60000


#mybatis&&通用Mapper
##配置別名掃描路徑
mybatis.type-aliases-package=com.tzwy.tokenserver.moduler.entity
#如果不是純註解 mapper接口對應的.xml文件
#mybatis.mapper-locations=classpath:mapper/*.xml
#通用mapper的所在接口名稱 不只是包名
mapper.mappers=com.tzwy.tokenserver.moduler.mapper.MyMapper
#開啓駝峯命名轉換
mybatis.configuration.map-underscore-to-camel-case=true
#數據庫
mapper.identity=MYSQL

##分頁插件
# 指定數據庫,不指定的話會默認自動檢測數據庫類型
pagehelper.helperDialect=mysql
# 是否啓用分頁合理化。 如果啓用,當pagenum<1時,會自動查詢第一頁的數據,當pagenum>pages時,自動查詢最後一頁數據;不啓用的,以上兩種情況都會返回空數據
pagehelper.reasonable=true
# 默認值false,分頁插件會從查詢方法的參數值中,自動根據上面 params 配置的字段中取值,查找到合適的值時就會自動分頁。
pagehelper.supportMethodsArguments=true
# 用於從對象中根據屬性名取值,
# 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默認值,
# 默認值爲pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero
pagehelper.params=count=countSql




#在格式:logging.level.Mapper類的包=debug  會在控制檯打印出sql語句
logging.level.yiche.com.mapper=debug


注意坑:
1)我的token服務中使用的是通用mapper,所以會有一個myMapper泛型定義,我們在testjar啓動類中指定mapper掃描路徑時要避免將其添加進去,不然會報錯;
在這裏插入圖片描述
2)在jartest服務中,我們依賴了token服務jar,所以我們在編寫代碼時,在controller和bean上,不要有與token服務中相同名稱的類,不然無法啓動成功;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章