本教程展示了如何设置一个Java控制台应用程序与Maven使用LEADTOOLS SDK码头工人容器。
概述 | |
---|---|
总结 | 本教程介绍了如何用集装箱装一个Java控制台应用程序使用LEADTOOLS Maven和码头工人。 |
完成时间 | 30分钟 |
平台 | Java控制台应用程序使用码头工人与Maven |
IDE | Eclipse |
开发许可 | 下载LEADTOOLS |
在工作之前用集装箱装LEADTOOLS与码头工人和Maven - Java应用程序
教程中,确保您安装LEADTOOLS SDK以及码头工人桌面。如果你没有下载,使用下面的链接访问各自的安装程序。
请注意
因为Java项目是使用Maven,一定要把你的包和主类
主要\ src \ \ java \ < PROJECT_NAME > \ Main.java
,否则Maven将无法定位在执行的码头工人容器。
创建一个文件夹叫铅
在相同的目录中包含Java项目src
文件夹中。在铅
文件夹创建另一个文件夹src
。添加应用程序所需的所有LEADTOOLS JAR文件的这个新src
文件夹中。创建一个新文件pom.xml
在相同的src
目录中。
将下面的代码添加到pom.xml
文件。
<项目xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns: xsi = " http://www.w3.org/2001/XMLSchema-instance "
xsi: schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
<modelVersion>4.0.0</ modelVersion>
<groupId>org.leadtools</ groupId>
<artifactId>应用程序</ artifactId>
<版本>1.0</版本>
将以下代码添加到pom.xml
文件来确定变量更高版本代码,设置适当的建筑所需的编译器版本。
<属性>
<version.maven-install-plugin>3.0.0-M1</ version.maven-install-plugin>
<version.leadtools>21.0.0.1</ version.leadtools>
<maven.compiler.source>15</ maven.compiler.source>
<maven.compiler.target>15</ maven.compiler.target>
</属性>
下一步,您需要定义每个LEADTOOLS JAR文件添加到项目的依赖。请注意$ {version.leadtools}
,这将从上面的变量我们设置的值。一个<依赖> < /依赖>
块和执行<执行> < / >
块需要被添加为每个LEADTOOLS JAR项目中。
<依赖关系>
<依赖>
<groupId>com.leadtools</ groupId>
<artifactId>leadtools</ artifactId>
<版本>$ {version.leadtools}</版本>
</依赖>
</依赖关系>
<构建>
<插件>
<插件>
<groupId>org.apache.maven.plugins</ groupId>
<artifactId>maven-install-plugin</ artifactId>
<版本>$ {version.maven-install-plugin}</版本>
<执行>
<!——Leadtools Jar>
<执行>
<id>install-external-leadtools-jar</ id>
<阶段>初始化</阶段>
<目标>
<目标>安装文件</目标>
</目标>
<配置>
<groupId>com.leadtools</ groupId>
<artifactId>leadtools</ artifactId>
<版本>$ {version.leadtools}</版本>
<文件>$ {project.basedir} /领导/ src / leadtools.jar</文件>
<包装>jar</包装>
<generatePom>真正的</ generatePom>
</配置>
</执行>
</执行>
</插件>
这最后一部分指示Maven生成的JAR文件运行的码头工人可以执行它。改变< mainClass > < / mainClass >
块匹配程序的包名和主要
类。
<——构建可运行的应用程序Jar>
<插件>
<groupId>org.apache.maven.plugins</ groupId>
<artifactId>maven-assembly-plugin</ artifactId>
<执行>
<执行>
<阶段>包</阶段>
<目标>
<目标>单</目标>
</目标>
<配置>
<存档>
<清单>
<addClasspath>真正的</ addClasspath>
<mainClass>set_license_maven.Main</ mainClass>
</清单>
</存档>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</ descriptorRef>
</ descriptorRefs>
</配置>
</执行>
</执行>
</插件>
</插件>
</构建>
</项目>
在相同的目录中pom.xml
文件,创建一个新文件命名Dockerfile
。这个文件将包含所有的指令构建集装箱码头工人。的Dockerfile
指示在集装箱码头工人安装所需的依赖项,一切功能正常。
这部分的Dockerfile
将设置项目文件在容器中运行。首先,它安装SDK应用程序所需的(相应改变以匹配、信息发现hub.docker.com/_/debian)。
下一个设置容器的当前目录/应用程序
和复制文件所需的Maven在当地目标目录的容器应用程序
目录中。运行Maven构建JAR文件。
# # #建筑项目(https:/ /hub.docker.com/_/debian)
从maven: 3.6 -openjdk-17-slim build-env
WORKDIR /应用程序
# Maven所需的文件复制到容器中
复制/ src / app / src
复制/领导/ app /铅
pom副本。xml / app / pom.xml
#构建JAR文件
运行mvn初始化
运行mvn - f / app / pom。xml全新安装
下一个部分Dockerfile
将在容器安装的运行时环境。
首先,它安装运行时所需的应用程序(匹配相应的变化,信息发现hub.docker.com/_/debian)并设置容器的当前目录临时
。然后设置一个容器环境DEBIAN_FRONTEND
非交互式防止确认或可选的输入请求通过安装依赖关系。最后,它更新apt-get
和安装apt-utils
和wget
进一步促进安装其他依赖项。
# # #建筑运行时图像(hub.docker.com/_microsoft-dotnet-runtime)
从debian: sid
WORKDIR / temp
#生成恰当的缓存
ENV DEBIAN_FRONTEND非交互的
运行apt-get更新\
& & apt-get安装- y apt-utils wget
为了运行Java应用程序在这个集装箱码头工人,我们需要安装Java Java命令和设置环境变量来访问。
使用wget
指示容器下载安装所需的JDK(调整链接与JDK在您的应用程序)。使用apt-get
指导安装文件的容器。
的ENV
行设置环境变量来告诉容器如何使用Java命令。的运行
命令安装了Java和容器理解Java命令和更新apt-get
。
#安装Java
wget https运行:/ /download.java.net/openjdk/jdk14/ri/openjdk-14 + 36 _linux-x64_bin.tar.gz
运行apt-get安装- y - no-install-recommends openjdk-15-jdk
ENV JAVA_HOME = / usr / lib / jvm / openjdk-15-jdk
ENV = $ PATH: $ JAVA_HOME / bin
运行java -版本
# APT更新缓存
运行apt-get更新
本节安装所需的依赖项LEADTOOLS为了在容器中运行。
微软字体部分只需要与一个GUI应用程序。的wkhtmltopdf
部分需要处理HTML和提供依赖项许可处理。
#安装导致依赖性(https:/ /m.ahtuanjie.com/help/sdk/v21/main/api/getting-started-with-the-leadtools-linux-libraries-and-demo-projects.html)
运行apt-get安装- y \
uuid- devuuid运行gcc g++ libc-dev-bin \
linux-libc-dev libx11-6 libx11-dev libxt6 \
libxt-dev sqlite3 libsqlite3-dev libfreetype6
#安装微软字体(http:/ /askubuntu.com/a/25614)
#运行回声“ttf-mscorefonts-installer msttcorefonts / accepted-mscorefonts-eula选择真正的“| debconf-set-selections
#运行apt-get安装- y \
# fontconfig ttf-mscorefonts-installer
#安装wkhtmltopdf (http:/ / wkhtmltopdf.org)
wget - q https运行:/ /github.com/wkhtmltopdf/packaging/releases/download/0.12.6 buster_amd64.deb——1/wkhtmltox_0.12.6 - 1.
运行apt安装- y -允许匿名\
/ wkhtmltox_0.12.6 - 1. buster_amd64.deb
运行ldconfig
在最后一节中,我们做最后的清理,最后设置,并指定如何初始化应用程序。
设置容器当前目录应用程序
和删除临时
目录我们不再需要。如果您的应用程序是基于web的应用程序,取消了80年公开
所以您的应用程序将在端口80上进行侦听,改变端口号。接下来的内容应用程序
目录存储在容器中buid-env
部分粘贴到应用程序
文件夹中。最后,我们组的命令java jar app.jar
当我们开始运行触发应用程序运行的容器。
#删除临时文件
WORKDIR /应用程序
运行rm射频/ temp
# 80年公开
#复制并部署应用程序
复制——从= build-env / app。/
复制——从= build-env / app /目标/ app - 1.0 - jar依赖项。jar。/ app.jar
入口点(“java”,“罐子”,“app.jar”]
打开命令提示符/终端或Windows PowerShell并导航到项目文件夹,其中包含了Dockerfile
使用下面的命令。
cd“< PathToProject >”
构建和容器的名字< project_name >
所有小写格式和单一词使用下面的脚本:
码头工人建造- - - - - -t < project_name >。
为码头工人可能需要几分钟才能完成。一旦完成,就可以运行。
一旦建码头工人形象,使用下面的命令运行容器:
码头工人运行< project_name >
如果您的应用程序需要用户输入,您需要运行这个命令允许交互:
码头工人运行- - - - - -我< project_name >
如果你的应用程序需要导入/导出文件,你可以通过这个命令直接到一个本地目录:
码头工人运行- - - - - -v/c/温度:/应用程序/数据< project_name >
这将当地的地图C: \ Temp
文件夹的容器/ app /数据
文件夹中。
本教程展示了如何用集装箱装一个Java应用程序在一个码头工人容器。