1. java / jar 编译及打包基础命令
// 把src里面的*.java编译到bin, classpath = lib/*;src/
javac -encoding utf8 -Xlint:deprecation -proc:none -cp "lib/*;src/" src\*.java -d bin
// jar打包并输出到build-jar/test.jar, 包含src, docs目录
jar cvfm build-jar/test.jar resources\manifest.txt -C bin . src docs
// 为src里面的java生成说明文档
javadoc -encoding utf8 -cp "lib/*;src/" src\*.java -d docs
2. mvn基本命令
- 运行
mvn spring-boot:run
or
java -jar target/springboot_sample-1.0.jar
- 指定根据路径build/下的pom.xml, 清理后创建jar包,同时忽略测试
mvn clean package -D maven.test.skip=true -f ./build
3. Docker Compose 优雅部署方式
说明:看了一些网上的jar在docker部署方式,都不太优雅,且不够灵活,这里给出一套总结下来可行的方案:使之能在通过配置,指定运行的jar,不必写死在镜像里。
3.1 目录结构
说明 | |
root@rp4-server1:/# tree docker-compose docker-compose ├── docker │ ├── java │ │ └── Dockerfile │ ├── nginx.Dockerfile ├── docker-compose.yml | 其中 Dockerfile为java构建所需镜像说明 |
/data0/Projects/java/t01/springboot_sample-1.0.jar | 目标jar文件 |
3.2 docker-compose.yml
java01:
restart: always
container_name: ${APP_NAME:?err}-java01
build:
context: ./docker/java
command: java -jar springboot_sample-1.0.jar
# expose 为仅需要内部暴露端口给其他应用
#expose:
# - 8080
# posts 为映射到服务器端口,可直接访问
ports:
- 8080:8080
links:
- 'mariadb'
- 'redis'
volumes:
- '/data0/Projects/java/t01:/workspace' #映射工作目录
3.3 Dockerfile
#需选择正确的镜像包,我的环境是树莓派4,所以选arm64v8/openjdk,正常的可选java8
FROM arm64v8/openjdk:latest
# 建立工作目录
RUN mkdir /workspace
WORKDIR /workspace
ADD . /workspace/