このページは、お客様の言語ではご利用いただけません。Huawei Cloudは、より多くの言語バージョンを追加するために懸命に取り組んでいます。ご協力ありがとうございました。
- What's New
- Function Overview
- Service Overview
-
Getting Started
- Building with Ant and Uploading the Package to a Release Repo (x86, Preset Image, GUI)
- Building with CMake and Uploading the Package to a Release Repo (Arm, Preset Image, GUI)
- Building with Maven, Uploading the Software Package, and Pushing the Image (x86, Preset Image, Code)
- Common Practices for Beginners
-
User Guide
- Working with CodeArts Build
- Enabling CodeArts Build
- Configuring Project-Level Role Permissions
- Creating a Build Task
-
Configuring a Build Task
- Performing Basic Configurations
- Selecting Build Actions
-
Configuring Build Actions
- Building with Maven
- Building with Android
- Building with npm
- Building with Gradle
- Building with Yarn
- Building with Gulp
- Building with Grunt
- Building with Mono
- Building in PHP
- Building with Setuptools
- Building with PyInstaller
- Running Shell Commands
- Building with GNU Arm
- Building with CMake
- Building with Ant
- Building with Kotlin
- Building with Go
- Building Android App with Ionic
- Building an Android Quick App
- Building with sbt
- Building with Grails
- Building with Bazel
- Building with Flutter
- Building with HarmonyOS
- Running Docker Commands to Operate Images
- Generating a Unit Test Report
- Customizing a Build Environment
- Using a Custom Build Environment
- Downloading a Software Package from Release Repos
- Uploading a Software Package to Release Repos
- Uploading Files to OBS
- Configuring Parameters
- Configuring Schedules
- Configuring Roles and Permissions
- Configuring Notifications
- Running a Build Task
- Viewing a Build Task
- Managing Build Tasks
- Querying Audit Logs
- References
- Old User Guide
-
Best Practices
- Creating a Docker Image with a Maven Artifact and Pushing the Image to SWR (Built-in Executors, GUI)
- Building with Maven and Uploading the Software Package to the Self-hosted Repo (Built-in Executors, GUI)
- Building with Maven to Generate a Private Dependency for Another Build (Built-in Executors, GUI)
- Building with npm and Uploading the Software Package to the Release Repo (Built-in Executors, GUI)
- Building with Maven (Custom Executors, GUI)
- Building with Maven, Uploading the Software Package, and Pushing the Image to SWR (Built-in Executors, Code)
- Running a Multi-Task Maven Build Project (Built-in Executors, Code)
- Using the File from the Self-hosted Repo to Build with Maven and Uploading the Resulting Software Package (Built-in Executors, GUI)
- Running a Build Task on a Custom Environment (Built-in Executors, GUI)
-
API Reference
- Before You Start
- API Overview
- Calling APIs
-
Task APIs
- Querying Build History in a Specified Period
- Querying Build History
- Downloading the Keystore File
- Viewing Task Status
- Querying Build Tasks in a Project
- Running a Build Task
- Querying the Latest Successful Build with a Specified Code Repository
- Querying Details of a Build Record
- Querying Success Rate of a Build Task in a Specified Period
- Downloading All Build Logs
- Downloading Logs of Build Actions
- Obtaining Information About Build Records
- Obtaining Details About Build Results
- Stopping a Build Task
- Deleting a Build Task
- Disabling a Build Task
- Restoring a Build Task
- Creating a Build Task
- Updating a Build Task
- Querying a Build Template
- Creating a Build Template
- Deleting a Build Template
- Querying Notifications
- Updating Notifications
- Canceling Notifications
- Obtaining Build Task Details
- Downloading Real-time Build Logs
- Obtaining Build Records of a Task
- CodeArts Build (Unavailable Soon)
- Application Examples
- Appendix
- Change History
-
FAQs
-
General
- Can I Run a Build Task with a Specific Server or Server Configuration?
- Why Are the Required Project Files Not Found During Builds?
- Files Not Found During Software Package Upload
- Why Am I Prompted that My Permissions Are Insufficient When Running a Build Task?
- Why Am I Prompted that the Build Task Does Not Exist When Calling It Through a Pipeline?
- Why Is My Task Stopped?
- How Do I Migrate Common Java Projects Created with Eclipse to the Cloud?
- Service Endpoint Did Not Exist
- Incomplete JAR Due to Parallel Build Tasks
- How Do I Resolve the Error Occurred When Pulling the Sub-module During My Build?
- How Do I Fix the Submodules Checkout Error Due to a Failure to Obtain Its Revision?
- Why Are the Submodules Not Being Pulled During My Build?
-
Maven Builds
- What Can I Do If License Check Fails?
- Failed to Upload a Package Using the maven deploy Command
- How Do I Deal With the Missing POM File?
- How Do I Deal With the Missing Package or Symbol?
- Using the exec-maven-plugin Extension for Maven and NPM Hybrid Builds
- How Do I Fix the Errors Related to References Among Multiple Child and Parent Projects?
- How Do I Configure and Clear the Cache for a Maven Build?
- How Do I Find the Correct Build Package Path?
- How Do I Use jib-maven-plugin to Build a Maven Project and Create an Image?
- Why Is the New Package Still Built from the Old Code Even After the Code Has Been Updated?
- Why Is My Download of Maven Components Slow?
-
Android Builds
- How Do I Deal With the Unstable Jcenter () Configured for a Project?
- What Should I Do If an Error Occurs During the Lint Check and the Task Stops?
- What Should I Do When Dependency com.android.tools.build:gradle:3.0.1 Cannot Be Downloaded?
- Why Am I Seeing the Error Message "Javadoc generation failed"?
- Why Am I Seeing the Error Message "Could not find method google()"?
- What Can I Do If the Gradle Version Is Too Early?
- How Do I Fix the Android APK Signing Failure?
- Using Gradle for Build
-
npm Builds
- Why Am I Seeing the Error Message "JavaScript heap out of memory"?
- Why Am I Seeing the Error Message "enoent ENOENT: no such file or directory"?
- Why Am I Seeing the Error Message "Module not found: Error: Can't resolve ..."?
- Why Did My Build Fail Without Displaying Any Errors?
- Why Am I Seeing the Error Message "npm cb() never called"?
- Why Am I Seeing the Error Message "gyp ERR!"? stack Error: EACCES: permission denied
- Why Am I Seeing the Error Message "eslint: error 'CLODOP' is not defined"?
- How Do I Fix the node-sass Download Failure?
- Why Am I Seeing the Error Message "error: Could Not Write Config File"?
- Why Does It Take Long to Install Dependencies and Build?
- What Should I Do When the Dependency Version Cannot Be Found?
-
Images
- Failed to Create an Image Using Dockerfile
- Failed to Push Images to SWR
- How Do I Resolve the Image Pull Failure During a Build Task?
- No Permission to Pull Images When SWR Public Images Are Used
- Failed to Log In to the Image Repository
- How Do I Push an Image to Other Tenants?
- Pulling Docker Hub Images Times Out or Exceeds the Max. Attempts
-
General
- Videos
- General Reference
Copied.
How Do I Use jib-maven-plugin to Build a Maven Project and Create an Image?
Symptoms
The Maven image provided by CodeArts does not contain the Docker environment. An error is reported when an image is created using CodeArts Build and the docker-maven-plugin extension. For example:
INFO: I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: No such file or directory
This document describes how to use the jib-maven-plugin extension to create a TAR file with an image in a Maven environment without Docker.
Solution
- Modify the code of the project for which you want to create an image.
Find the POM file and import the extension. The content is as follows:
<!--Use the jib extension.--> <plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> <version>1.3.0</version> <configuration> <!--The from node is used to set the base image, which is equivalent to the FROM keyword in a Dockerfile.--> <from> <!—You are advised to use SWR public images for fast download and more stable download. --> <image>swr.example.myxxcloud.com/xxxx/xxx:xxxxx</image> </from> <to> <!--Image name and tag. The mvn built-in variable ${project.version} is used, indicating the version of the current project.--> <image> hellojib:${project.version}</image> </to> <!--Attribute related to containers--> <container> <!--JVM memory parameter--> <jvmFlags> <jvmFlag>-Xms4g</jvmFlag> <jvmFlag>-Xmx4g</jvmFlag> </jvmFlags> <!--Port to be exposed--> <ports> <port>8080</port> </ports> </container> </configuration> </plugin>
- From tag: Set the base image, which is equivalent to the FROM keyword in a Dockerfile. You are advised to use the image in SWR because the download speed is fast and stable.
- To tag: Set the name and tag of the created image.
- Container tag: Set the container attribute, JVM memory parameter, port, and so on.
- mainClass tag: Set the main program for starting the project, that is, the Application class of Spring Boot.
- Create build task and execute it.
- Add two build actions: Build with Maven and Upload to Release Repos. Change the default Maven build command to the following command:
mvn compile jib:buildTar -Dmaven.test.skip=true -U -e -X –B
NOTE:
The Jib build tool provides four powerful functions. The build and dockerBuild commands cannot be used to create images because the build tool is built without the Docker environment. You can only run the buildTar command to create a .tar file that contains images.
- build allows you to create images and push them to a remote repository.
- buildTar provides the function of creating a .tar file that contains images.
- dockerBuild provides the function of creating Docker images to a local PC.
- exportDockerContext provides the Dockerfile creation function.
After the building is successful, the following information is displayed in the log:
- In the target directory of the Java project, the jib-image.tar file is generated. In addition, the task uploads the software to release repos.
- Add two build actions: Build with Maven and Upload to Release Repos. Change the default Maven build command to the following command:
- Use the tar image.
Run the script or download command to download the .tar file from the release repo o the server where the application is to be deployed. Run the docker load command to load the image of the .tar file to the local image repository, and run the docker run command to start the image.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot