springboot新手上路-Hello World

MyBatis配置与依赖问题

新手上路与各位共勉:

好不容易用mybatis自动读取了SQL表结构

准备写一个hello world

结果发现编译报错:

 

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;

Error:(6, 37) java: package org.apache.ibatis.annotations does not exist

一查缺少一个包。这个简单,搜了一下需要补充

<!-- https://mvnrepository.com/artifact/org.apache.ibatis/ibatis-core -->
<dependency>
    <groupId>org.apache.ibatis</groupId>
    <artifactId>ibatis-core</artifactId>
    <version>3.0</version>
</dependency>
--------------------- 
作者:吊儿郎当的钱袋 
来源:优快云 
原文:https://blog.youkuaiyun.com/duanjw1988/article/details/53635115 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

另一个问题参考如下,可能需要把mybatis版本从3.2.8改成3.2.7 然后解决。

https://blog.youkuaiyun.com/qq_42145871/article/details/81061815

<think>嗯,用户遇到了Docker构建时的语法错误,具体是在使用--build-arg参数时出现了问题。我需要先理解他的具体使用场景和可能出错的地方。他提到的是syntax error,可能是在命令行中的参数格式不正确,或者在Dockerfile中的定义有问题。 首先,我应该回顾Docker的--build-arg的正确用法。构建参数需要在docker build命令中指定,格式是--build-arg <变量名>=<值>。同时,这些参数在Dockerfile中需要用ARG指令来声明。用户可能在命令行中漏掉了等号,或者变量名和值之间有空格,导致语法错误。 比如,用户可能写成了--build-arg NAME VALUE,而没有用等号连接,这样会引发错误。另外,如果Dockerfile中没有对应的ARG指令,即使命令行传入了参数,构建时也会被忽略,但不会直接导致语法错误。所以更可能的是命令行的参数格式不对。 接下来,用户的例子中有提到springboot-hello-webapp,这可能是一个Spring Boot项目,构建时需要传递一些参数,比如版本号、依赖路径等。需要检查他是否在Dockerfile中正确使用了ARG,并在后续的步骤中用ENV或直接使用这些变量。 此外,用户可能混淆了构建参数和其他docker build的选项,比如路径的位置是否正确。例如,docker build命令最后的.表示上下文路径,如果用户遗漏了这个点,或者将--build-arg放在错误的位置,也会导致语法错误。 还需要考虑环境变量的引用方式,在命令行中使用变量时,如果值包含空格,是否用引号包裹。例如,--build-arg APP_NAME="My App" 如果值有空格,必须用引号,否则会解析错误。 另外,用户可能没有正确安装Docker版本,或者使用了过时的版本导致某些语法不被支持。根据引用[1],Docker Engine >=19.03和Compose >=3.8,所以需要确认用户的Docker版本是否符合要求,不过这可能不是语法错误的主要原因。 最后,需要给出具体的正确用法示例,帮助用户对照检查自己的命令。比如正确的命令应该是docker build --build-arg VERSION=1.0.0 -t springboot-hello-webapp .,并确保Dockerfile中有ARG VERSION的定义,并且后面有使用这个变量,比如在ENV或RUN指令中。 可能还需要提醒用户其他注意事项,比如构建参数的作用域仅在构建过程中,区分ARG和ENV的不同,以及如何避免在构建时传递敏感信息等。</think>### 关于Docker构建命令中`--build-arg`参数的使用 #### 1. **语法错误原因分析** 您的语法错误可能由以下原因导致: - **参数格式错误**:`--build-arg`的语法必须为`--build-arg <变量名>=<值>`,若缺少等号或值包含空格未加引号会报错。例如: ```bash # 错误示例(缺少等号) docker build --build-arg VERSION 1.0.0 -t springboot-hello-webapp . # 正确示例 docker build --build-arg VERSION=1.0.0 -t springboot-hello-webapp . ``` - **未在Dockerfile中声明参数**:若在命令行传递了参数,但Dockerfile中未使用`ARG`指令声明,会导致参数被忽略(但不会直接引发语法错误)[^1]。 --- #### 2. **正确使用步骤** ##### (1) **Dockerfile中定义构建参数** 在Dockerfile中通过`ARG`声明变量,例如: ```dockerfile # 定义构建参数 ARG VERSION ARG JAR_PATH # 使用参数(例如设置环境变量) ENV APP_VERSION=${VERSION} # 复制JAR文件到镜像中 COPY ${JAR_PATH}/app.jar /app/app.jar ``` ##### (2) **构建时传递参数** 在`docker build`命令中通过`--build-arg`传递值: ```bash docker build --build-arg VERSION=1.0.0 \ --build-arg JAR_PATH=target \ -t springboot-hello-webapp . ``` --- #### 3. **注意事项** - **参数作用域**:`ARG`定义的变量仅在构建阶段有效,若需在容器运行时使用,需通过`ENV`转换为环境变量[^4]。 - **敏感信息处理**:避免直接传递密码等敏感信息,建议使用Docker Secrets或配置文件(参考引用[4]中的`configs`配置)。 - **命令行路径**:确保构建命令末尾的上下文路径(如`.`)正确,否则会导致文件复制失败。 --- #### 4. **完整示例** 假设Spring Boot项目的JAR文件位于`target/`目录: ```bash # Dockerfile FROM openjdk:11 ARG JAR_FILE=app.jar COPY target/${JAR_FILE} /app/app.jar ENTRYPOINT ["java", "-jar", "/app/app.jar"] # 构建命令 docker build --build-arg JAR_FILE=springboot-hello-webapp.jar -t myapp . ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值