准备工作:
首先要能访问代码工厂的443和22端口,443有政务网就能访问到,22要单独开,vpn不给开22端口,所以得到有网络的现场
由于22是高危端口,现在只能使用https方式进行代码托管,所以只要443端口通就行
配置ssh key如果本地已经有,直接用就行
https方式托管不需要配置ssh key
平时开发用java1.8,代码工厂要用java17,电脑上两个版本的jdk都要装,环境变量可以这么配
JAVA8_HOME:C:\Program Files\Java\jdk-1.8
JAVA17_HOME:C:\Program Files\Java\jdk-17
JAVA_HOME:%JAVA17_HOME%
Path:%JAVA_HOME%\bin,%JAVA_HOME%\jre\bin
Path的环境变量要把JAVA_HOME相关的放在最前面
切换jdk版本时修改JAVA_HOME就可以,不过要重启电脑
其他配置,比如settings.xml配置和pom.xml配置,都不用配,环境变量生效就行了,环境变量没生效,配置再多也没用
不过还是把配置发一下,万一以后有用了呢
settings.xml配置
<profile>
<id>jdk-17</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>17</jdk>
</activation>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
</properties>
</profile>
pom.xml配置
<properties>
<java.version>17</java.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
查看当前jdk版本要同时使用命令mvn -v和java -version,显示版本一致说明正常
正式开始:
打开地址https://irsfactorycode.zj.gov.cn/
浙政钉扫码登陆
平台上如果没有应用,需要isv管理员把你和应用关联起来,如果有应用但没有权限,需要用业主账号把你设置成对应的角色,这里建议设置为负责人
选择应用点击进入开发,点击进入,点击创建研发代码服务组
填好信息后,点击确定,等待片刻后刷新一下页面
然后点击添加研发代码服务,选后端应用-服务应用-名称-标识-托管仓库-空应用(是),点确定
点进入giblab就跳转到代码工厂的GitLab了
然后创建一个Access Tokens,权限选read_repository和write_repository,创建之后会生成一个token,保存下来后面有用
找一个空目录,使用git bash把空代码拉下来
git clone https://167346:token@irsfactorygit.zj.gov.cn/xxx/xxx.git
167346是我的用户名,换成自己的,token换成刚存下来的token
然后把代码文件复制到clone成功的目录中,然后进入目录中,修改pom.xml,build-spec.config,以及Dockerfile,改好后运行/bin/package.bat
重新使用git bash,分别执行
git add .
git commit -m "init"
git push
代码就上传好了
也可以使用其他工具,比如项目导入Eclipse,使用git插件完成上传
然后修改config.json,按说明改就行
之后是运行maven-upload.jar,由于我config.json和maven-upload.jar放在一起,使用相对目录就可以,不过这里要注意,由于我本地maven仓库路径中存在空格,所以完整路径要用引号包起来,不然执行不了
java -jar maven-upload.jar root-dirs --root="C:\Program Files\maven\repository" --config=config.json
这一步需要不少时间,慢慢等就行,等包都上传好之后,就可以准备运行流水线了
运行之前,先构建参数,其他都不用选,就一个jdk版本要改,选择jdk17,保存
然后运行流水线,等待运行结束
如果运行报错,就去常见问题和解决方案的文档中寻找办法解决就行,正常来说,上述流程顺利走完的话也不会报错了
文档地址:应用工厂常见问题及解决方案-非安全问题 · 应用工厂
整个过程基本上这样就走完了,如果需要报告,就导出一下就行
哦,对了,如果要验签的话,不要用Powershell,要用CMD,不然会报错
好了,这里是sai,祝你生活愉快