使用Docker构建Oracle ADF应用程序

最近,我的一个好朋友在使用公共Oracle Maven存储库构建ADF应用程序v.12.2.1.2时经常遇到问题。 他要求我检查它是否对我有用。 好吧……没有。 因此,存储库存在一些问题。 为了使实验整洁并避免对我的工作环境造成任何影响,我决定在docker容器中运行测试。

而且即使我不能帮助我的朋友(抛出一些依赖异常也无法正常工作),作为此检查的结果,我得到了一个可重用的docker映像,该映像用作ADF应用程序的预配置构建机器(适用于12.2版)。 1.3那时,Oracle Maven存储库运行良好。

这是我所做的:

1.拉并运行ubuntu Docker映像

$: docker run -it --name adfbuilder ubuntu

2.在adfbuilder容器中安装Java

apt-get install software-properties-common python-software-properties
add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java8-installer

3.在adfbuilder容器中安装Maven

只需下载Maven二进制文件并将其解压缩到某个文件夹中,然后复制到容器中即可:

docker cp ~/Downloads/apache-maven-3.5.2 adfbuilder:/opt/apache-maven-3.5.2

更新容器中的PATH环境变量

export PATH=$PATH:/opt/apache-maven-3.5.2/bin

完成后, mvn应该可用。 在容器中运行它,它将在用户家中创建一个隐藏的.m2文件夹。

4.在adfbuilder容器中配置Maven以与Oracle Maven存储库一起使用

只需放入隐藏的.m2文件夹

docker cp settings.xml adfbuilder:/root/.m2/settings.xml

包含以下内容的settings.xml文件:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0                       https://maven.apache.org/xsd/settings-1.0.0.xsd"><servers><server><id>maven.oracle.com</id><username>eugene.fedorenko@flexagon.com</username><password><MY_PASSWORD></password><configuration><basicAuthScope><host>ANY</host><port>ANY</port><realm>OAM 11g</realm></basicAuthScope><httpConfiguration><all><params><property><name>http.protocol.allow-circular-redirects</name><value>%b,true</value></property></params></all></httpConfiguration></configuration></server></servers><profiles><profile><id>main</id><activation><activeByDefault>true</activeByDefault></activation><repositories><repository><id>maven.oracle.com</id><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots><url>https://maven.oracle.com</url><layout>default</layout></repository></repositories><pluginRepositories><pluginRepository><id>maven.oracle.com</id><url>https://maven.oracle.com</url></pluginRepository></pluginRepositories></profile></profiles>
</settings>

基本上,这足以在容器中编译Maven配置的ADF应用程序。 我们需要确保可以从容器访问我们的应用程序的源代码。 可以通过将源文件夹映射为从容器可见或仅将其复制到容器中来完成。

docker cp / mywork / MySampleApp adfbuilder:/ opt / MySampleApp

完成此操作后,我们可以运行以下命令来编译应用程序:

docker exec adfbuilder mvn -f /opt/MySampleApp/pom.xml编译

5.将JDeveloper二进制文件复制到容器中

由于我们希望超越这一点,不仅能够编译,而且能够生成可部署的工件(耳朵,罐子等),所以我们需要将JDeveloper二进制文件放入容器中(基本上, maven需要ojdeploy)。 我刚刚将Mac_目录中的Oracle_Home文件夹复制到了容器中:

docker cp /My_Oracle_Home adfbuilder:/opt/Oracle_Home

所以,现在我能够建立一个耳朵我的容器应用程序:

docker exec adfbuilder mvn  -f /opt/MySampleApp/pom.xml package -DoracleHome=/opt/Oracle_Home

对于第一次运行,它可能会要求您提供JDK的路径

[INFO] Type the full pathname of a JDK installation (or Ctrl-C to quit), the path will be stored in /root/.jdeveloper/12.2.1.3.0/product.conf/usr/lib/jvm/java-8-oracle

6.提交对容器的更改
我们需要做的最后一件事是将更改提交到容器:

docker commit adfbuilder efedorenko/adfbuilder

这将创建一个新的ubuntu映像,其中包含我们应用的所有更改。 我们可以轻松地在基础架构中的任何位置运行该映像,并将其用作ADF应用程序的构建机器。 它的优点在于我们可以在像Docker Cloud(由AWS,Microsoft Azure,Digital Ocean等支持)或Oracle容器云服务等云中运行它,也可以随便使用它。 使用这种方法,云中的服务器可以为您构建应用程序,这通常是一项非常耗资源的工作。

就是这样!

翻译自: https://www.javacodegeeks.com/2018/01/building-oracle-adf-applications-docker.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348931.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux权限c是什么意思,linux服务器下权限设置

1.在终端输入命令 sudo chmod -R 777 /opt/Tomcat,那么Tomcat文件夹和它下面的所有子文件夹的属性都变成了777(读/写/执行权限)2.bin/sh^M&#xff1a;损坏的解释器: 没有那个文件或目录 错误&#xff1f;解决方法&#xff1a;脚本文件保存时使用了DOS格式&#xff0c;用DOS2UN…

linux内存不足时缩减缓存,Linux内存及页面缓存管理概要总结

物理内存管理页面内存管理Linux把物理内存划分为若干个大小相同(通常是4k)的页面&#xff0c;每个页面使用struct page描述&#xff0c;在内核初始化时会根据物理内存大小和页面大小&#xff0c;初始化一个struct page数组mem_map[]对系统中所有的页面进行统一管理。物理页面描…

jpa 异常捕获_JPA和CMT –为什么捕获持久性异常不够?

jpa 异常捕获使用CMT&#xff08; 容器管理的事务 &#xff09;进入EJB和JPA的世界非常舒适。 只需定义一些注释来划分事务边界&#xff08;或使用默认值&#xff09;即可&#xff0c;仅此而已–无需摆弄手动开始&#xff0c;提交或回滚操作。 回滚事务的一种方法是从EJB的业务…

linux 线程等待时间,线程超时等待方法 linux中select()函数使用

线程超时等待方法 linux中select()函数使用select系统调用时用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待&#xff0c;直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄&#xff0c;其实就是一个整数&#xff0c;通过socket函数的声…

使用Spring @Transactional进行数据源路由

卡尔帕帕&#xff08;Carl Papa&#xff09;在Spring框架中使用方面来确定要使用的DataSource &#xff08;读写或只读&#xff09;启发了我。 所以&#xff0c;我正在写这篇文章。 我必须承认&#xff0c;我对Spring的AbstractRoutingDataSource早已熟悉。 但是我不知道在哪里…

linux应用程序是什么,linux下c开发了一个应用程序,它的扩展名是什么?

这个貌2113似涉及到linux文件系统。linux文件系统与windows的不相同5261&#xff0c;windows系统应该是通4102过文件后缀来进行文件类型是别的&#xff0c;而1653linux虽然也会借鉴后缀信息&#xff0c;但好像不完全依赖于文件后缀。比如&#xff0c;在windows下&#xff0c;讲…

linux服务器带宽设置,linux 系统查看服务器带宽使用

使用linux服务器中&#xff0c;可能刚接触的同学不会查看系统的带宽使用&#xff0c;这里收集了一个脚本&#xff0c;可以实时显示服务器的带宽使用喔~vi cs.sh然后粘贴以下内容&#xff1a;#!/bin/bashif [ -z "$1" ]; thenechoecho usage: $0 network-interfaceech…

moxy json介绍_MOXy的对象图– XML和JSON的输入/输出局部模型

moxy json介绍假设您有一个要公开为RESTful服务的域模型。 问题是您只想输入/输出部分数据。 以前&#xff0c;您将创建一个代表子集的单独模型&#xff0c;然后使用代码在模型之间移动数据。 在EclipseLink 2.5.0中&#xff0c;我们有一个称为“对象图”的新功能&#xff0c;使…

linux设置新硬盘权限,Linux 下挂载新硬盘以及更改为普通权限

1、启动终端&#xff0c;以root用户登录2、查看硬盘信息&#xff1a;#fdisk -l3、进入磁盘&#xff0c;对磁盘进行分区&#xff1a;#fdisk /dev/sda(注意看你要挂载哪一个磁盘&#xff0c;我的是sda&#xff0c;有的是sdb)4、格式化分区&#xff1a;#mkfs.ext3 /dev/sda1 //注&…

使用Payara Micro的Easy Java EE Microservices

想知道如何开始使用Java EE Microservices&#xff1f; 使用Java EE API只需很少的步骤即可部署微服务。 许多人认为Java EE无法与微服务一起使用&#xff0c;但事实并非如此……特别是如果您仅使用服务所需的Java EE规范。 在这篇简短的文章中&#xff0c;我将演示如何使用Jav…

linux终端lex程序运行,lex的简单使用

Lex & Flex 简介Lex是lexical compiler的缩写&#xff0c;是Unix环境下非常著名的工具&#xff0c; Lex (最早是埃里克施密特和 Mike Lesk 制作)是许多 UNIX 系统的标准词法分析器(lexical analyzer)产生程式&#xff0c;而且这个工具所作的行为被详列为 POSIX 标准的一部分…

Linux内存page,Linux虚拟内存管理 - Page Table的作用

虚拟内存的作用&#xff1a;1.扩展实际有限的物理内存&#xff0c;当然这种扩展是虚拟的&#xff0c;比如物理内存512M&#xff0c;对于一个需要1G空间的进程来说&#xff0c;照样可以运行。这增加了操作系统是应用范围。2.使得进程中的数据空间增大&#xff0c;增大到多少与硬…

entitymanager_实体管理器的类型:应用程序管理的EntityManager

entitymanagerJPA规范定义了几种类型的EntityManagers / Persistence Context。 我们可以有&#xff1a; 扩展和事务范围的EntityManager&#xff0c; 容器管理或应用程序管理的EntityManager。 JTA或本地资源EntityManager&#xff0c; 除了上述区别之外&#xff0c;我们还…

linux安装无法添加挂载,linux-无法在已挂载/ etc / passwd和/ etc / shadow的docker容器中添加新用户...

问题示例&#xff1a;docker run -ti -v my_passwd:/etc/passwd -v my_shadow:/etc/shadow --rm centos[root681a5489f3b0 /]# useradd test # does not work !?useradd: failure while writing changes to /etc/passwd[root681a5489f3b0 /]# ll /etc/passwd /etc/shadow # pe…

CDI中的事务异常处理

在Java EE中&#xff0c;在执行事务性业务方法期间引发的异常导致事务回滚。 但是&#xff0c;只有系统异常&#xff08;即运行时异常&#xff09;才是这种情况&#xff0c;该方法异常未在方法签名中声明。 对于应用程序异常&#xff08;即检查的异常&#xff09;或任何带Appl…

openoffice+linux+jodconverter+乱码,OpenOffice安装和转换乱码解决方案

前言&#xff1a;OpenOffice项目中用途&#xff1a;word转换pdfWindows安装、转换&#xff1a;安装包下载后一路OK就可以正常安装&#xff0c;转换没有问题Linux安装、转换&#xff1a;安装有分DEB包和RPM包&#xff0c;下面会说明各自安装方法在en_US.UTF-8 系统环境下会出现乱…

linux常用操作符,Shell常用操作符总结

一、算术操作 - * / %二、关系操作> < ! && ||三、测试操作测试命令 : test [ ] [[ ]] (( ))1、测试文件状态-d 目录-b 块设备-s 文件长度 > 0、非空-f 正规文件-w 可写-L 符号连接-u 文件有 suid 位设置-r 可读…

junit 参数化测试用例_JUnit:在参数化测试中命名单个测试用例

junit 参数化测试用例几年前&#xff0c;我写了有关JUnit参数化测试的文章 。 我不喜欢它们的一件事是JUnit使用数字命名了单个测试用例&#xff0c;因此&#xff0c;如果它们失败&#xff0c;您将不知道是哪个测试参数导致了失败。 以下Eclipse屏幕快照将向您展示我的意思&…

华硕台式机安装linux进不去系统,[已解决]求助,无法进入系统

之前一直用arch系统盘&#xff0c;Windows系统盘是在另一台电脑上的&#xff0c;我另外一台电脑昨天摔了&#xff0c;我还以为是硬盘坏了&#xff0c;把这块windows硬盘换到这台华硕主板的电脑&#xff0c;发现硬盘没坏。我于是把windows硬盘从机箱拿出来&#xff0c;现在碰到了…

处理JAX-RS中的自定义异常类型

JAX-RS支持处理自定义异常&#xff08;以EJB或CID Bean形式抛出&#xff09;以处理自定义HTTP响应。 假设我们有一个“异常” EJB&#xff1a; Stateless public class Hello {public String greeting() {if (new Random().nextBoolean())throw new GreetingException("…