赞
踩
因交付客户源代码,不能连接公司maven仓库,需要进行离线打包,需要进行一些调整,将过程记录下来,防止重复踩坑:
1、工程中创建lib目录(和build.gradle文件同级);
2、通过在线方式生成完整的jar包,解压jar包,将其中的BOOT-INF下的ib中的jar包全部拷贝到工程下的lib目录;
3、修改gradle打包文件,将仓库地址修改为本地lib目录,依赖全部改为依赖本地目录
由于build.gradle中依赖了基础的base.gradle文件,其中涉及到远程仓库及插件方面的地址,需要进行改造:
buildscript { repositories { maven{ url uri('file:./lib') } } dependencies { classpath fileTree(includes:['*.jar'], dir:'lib') /*classpath "org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE" classpath "gradle.plugin.com.gorylenko.gradle-git-properties:gradle-git-properties:1.5.2" classpath "io.franzbecker:gradle-lombok:1.14"*/ } } apply plugin: org.springframework.boot.gradle.plugin.SpringBootPlugin apply plugin: com.gorylenko.GitPropertiesPlugin apply plugin: io.franzbecker.gradle.lombok.LombokPlugin apply plugin: 'java' apply plugin: 'idea' apply plugin:'groovy' apply plugin: 'eclipse' apply plugin: 'jacoco' jacoco{ toolVersion = "0.8.2" } repositories { maven{ url uri('file:lib') } } ……
build.gradle文件:
apply from: 'base.gradle'
group = 'com.xxxx.xxxx'
version = '1.0.0'
configurations.all {
// check for updates every build
resolutionStrategy.cacheChangingModulesFor 10, 'seconds'
}
dependencies {
compile fileTree(dir: 'lib', include: '*.jar')
}
4、下载plugin插件对应的依赖包。这一步是主要踩坑的地方,本地lib依赖的方式不会主动去拉取依赖包,因此需要手动下载。
分别在如下两个网站去查找jar包依赖关系:
(1)https://search.maven.org
(2)https://mvnrepository.com
例如,对于org.springframework.boot.gradle.plugin.SpringBootPlugin,通过原来的classpath引用中的GAV进行搜索:
在搜索结果中查看pom文件里面的dependency,将其中的依赖按相同的方式搜索,然后下载jar包,放到lib目录,直到不再提示找不到class的错误。
5、lombok特殊处理,此处也是一个踩坑之处,项目中程序编译时候使用的lombok和plugin中的版本不同且有一定对应关系。
(1)首先需要下载和plugin对应的lombok对应版本,可以去第4步里面的两个网站去查询下载;
(2)然后需要将jar安装GAV的目录结果保存,如:org\projectlombok\lombok\1.16.20
在lib下创建对应目录,将jar文件和pom文件都拷贝到org\projectlombok\lombok\1.16.20目录
6、执行打包命令进行打包即可,例如:gradle build -x test
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。