javascript - 我可以从 docker 运行 maven 神器吗

标签 javascript maven docker rhino

我的目标是使用 maven:latest 设置一个 Dockerfile,以便能够使用最新版本的 org.mozilla.rhino

运行我的 javascript 代码
FROM maven:latest
RUN [ "mvn", "dependency:get", "-Dartifact=org.mozilla:rhino:LATEST:jar" ]
RUN [ "mvn", "exec:java" "-Dexec.mainClass='org.mozilla.javascript.tools.shell.Main'" "-Dexec.args='src/index.js'"]

我是否需要一个 pom.xml 才能做到这一点,如果我需要 由于我的项目只有 javascript 文件,我的 pom.xml 应该包含什么?

PS:我以前没有使用maven的经验

最佳答案

好吧,正如您所希望的,您的项目实际上并不需要 pom.xml。我不知道您是否需要它完全可移植,但这是我基于 maven:latest 模拟的东西。这是通过利用下载的 rhino jar 文件包含一个 MANIFEST.MF 文件来完成的,该文件告诉 java 命令如何执行它。

rhino-1.7.10.jar 的内容:/META-INF/MANIFEST.MF

Manifest-Version: 1.0
Main-Class: org.mozilla.javascript.tools.shell.Main
Implementation-Version: 1.7.10
Implementation-Title: Mozilla Rhino
Implementation-Vendor: Mozilla Foundation
Implementation-URL: http://www.mozilla.org/rhino
Built-Date: 2018-04-09
Built-Time: 20:03:34

所以:

index.js

print("Hello world");

命令行

$ mvn dependency:get -Dartifact=org.mozilla:rhino:LATEST:jar # as you have currently
... # maven output snipped
$ find .m2 -name rhino*.jar -exec java -jar {} index.js \;
Hello world!

Dockerfile(未经测试)

FROM maven:latest
# Missing here is you copying your javascript into the image
RUN [ "mvn", "dependency:get", "-Dartifact=org.mozilla:rhino:LATEST:jar" ]
RUN [ "find", "/root/.m2", "-name", "rhino*.jar", "-exec", "java", "-jar", "{}", "src/index.js", "\;" ]

编辑:

我还应该注意到 .m2 用户子目录包含一个存储库,其中包含 maven 下载的所有 Artifact 。 maven:latest Dockerfile 似乎在/root/下设置了它。

关于javascript - 我可以从 docker 运行 maven 神器吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53210434/

相关文章:

javascript - 图像播放声音onclick

javascript - angularjs:指令的访问 Controller

java - JBoss Forge 不响应命令

java - 从 POM 的构建路径中排除包

javascript - 创建包含数组类型的 Mongoose 模型对于我的 docker 容器中的那些类型返回未定义

Docker 多阶段构建无法识别已安装的应用程序

javascript - 我可以通过ajax访问不同位置的同名 Controller 吗?

javascript - Dojo Dijit 样式问题

apache - 坚持部署 WAR 文件。 "FAIL - Application at context path/could not be started"

php - 将 Docker 用于多个 php 应用程序