簡體   English   中英

我可以從docker運行maven工件嗎?

[英]Can I run maven artifact from docker

我的目標是使用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才能做到這一點,如果我做了我的pom.xml應該包含什么,因為我的項目只有javascript文件?

PS:我以前沒有maven的經驗

好吧,正如您所希望的那樣,您並不需要為您的項目使用pom.xml 我不知道你是否需要這個可以完全移植,但這里是我基於maven:latest嘲笑的東西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下載的所有工件。 maven:latest Dockerfile似乎在/ root /下設置了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM