Can I run maven artifact from docker









up vote
3
down vote

favorite












My goal is to setup a Dockerfile with maven:latest in order to be able to run my javascript code with the latest build of org.mozilla.rhino



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'"]


do I need a pom.xml in order to do that and if I do
what should my pom.xml contain since my project only has javascript files?



PS: I have no previous experience with maven










share|improve this question



















  • 2




    Possible duplicate of Run mvn exec:exec without a pom.xml
    – Jon Sampson
    Nov 8 at 15:13










  • The question quoted above partially answers my question, but I need some help with my pom.xml
    – Teneff
    Nov 9 at 7:08














up vote
3
down vote

favorite












My goal is to setup a Dockerfile with maven:latest in order to be able to run my javascript code with the latest build of org.mozilla.rhino



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'"]


do I need a pom.xml in order to do that and if I do
what should my pom.xml contain since my project only has javascript files?



PS: I have no previous experience with maven










share|improve this question



















  • 2




    Possible duplicate of Run mvn exec:exec without a pom.xml
    – Jon Sampson
    Nov 8 at 15:13










  • The question quoted above partially answers my question, but I need some help with my pom.xml
    – Teneff
    Nov 9 at 7:08












up vote
3
down vote

favorite









up vote
3
down vote

favorite











My goal is to setup a Dockerfile with maven:latest in order to be able to run my javascript code with the latest build of org.mozilla.rhino



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'"]


do I need a pom.xml in order to do that and if I do
what should my pom.xml contain since my project only has javascript files?



PS: I have no previous experience with maven










share|improve this question















My goal is to setup a Dockerfile with maven:latest in order to be able to run my javascript code with the latest build of org.mozilla.rhino



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'"]


do I need a pom.xml in order to do that and if I do
what should my pom.xml contain since my project only has javascript files?



PS: I have no previous experience with maven







javascript maven docker rhino






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 8 at 15:22

























asked Nov 8 at 15:02









Teneff

13.8k63971




13.8k63971







  • 2




    Possible duplicate of Run mvn exec:exec without a pom.xml
    – Jon Sampson
    Nov 8 at 15:13










  • The question quoted above partially answers my question, but I need some help with my pom.xml
    – Teneff
    Nov 9 at 7:08












  • 2




    Possible duplicate of Run mvn exec:exec without a pom.xml
    – Jon Sampson
    Nov 8 at 15:13










  • The question quoted above partially answers my question, but I need some help with my pom.xml
    – Teneff
    Nov 9 at 7:08







2




2




Possible duplicate of Run mvn exec:exec without a pom.xml
– Jon Sampson
Nov 8 at 15:13




Possible duplicate of Run mvn exec:exec without a pom.xml
– Jon Sampson
Nov 8 at 15:13












The question quoted above partially answers my question, but I need some help with my pom.xml
– Teneff
Nov 9 at 7:08




The question quoted above partially answers my question, but I need some help with my pom.xml
– Teneff
Nov 9 at 7:08












1 Answer
1






active

oldest

votes

















up vote
1
down vote



accepted










Well, as you had hoped, you don't really need a pom.xml for your project. I don't know if you need this to be fully portable, but here's something I mocked up based on maven:latest. This is done by taking advantage of the fact that the rhino jar file which is downloaded contains a MANIFEST.MF file that tells a java command how to execute it.



contents of 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


So:



index.js



print("Hello world");


command line



$ 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 (untested)



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", ";" ]


Edit:



I should also note that the .m2 user subdirectory contains a repository that houses all the artifacts which maven downloads. The maven:latest Dockerfile appears to set this up under /root/.






share|improve this answer






















    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53210434%2fcan-i-run-maven-artifact-from-docker%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    1
    down vote



    accepted










    Well, as you had hoped, you don't really need a pom.xml for your project. I don't know if you need this to be fully portable, but here's something I mocked up based on maven:latest. This is done by taking advantage of the fact that the rhino jar file which is downloaded contains a MANIFEST.MF file that tells a java command how to execute it.



    contents of 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


    So:



    index.js



    print("Hello world");


    command line



    $ 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 (untested)



    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", ";" ]


    Edit:



    I should also note that the .m2 user subdirectory contains a repository that houses all the artifacts which maven downloads. The maven:latest Dockerfile appears to set this up under /root/.






    share|improve this answer


























      up vote
      1
      down vote



      accepted










      Well, as you had hoped, you don't really need a pom.xml for your project. I don't know if you need this to be fully portable, but here's something I mocked up based on maven:latest. This is done by taking advantage of the fact that the rhino jar file which is downloaded contains a MANIFEST.MF file that tells a java command how to execute it.



      contents of 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


      So:



      index.js



      print("Hello world");


      command line



      $ 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 (untested)



      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", ";" ]


      Edit:



      I should also note that the .m2 user subdirectory contains a repository that houses all the artifacts which maven downloads. The maven:latest Dockerfile appears to set this up under /root/.






      share|improve this answer
























        up vote
        1
        down vote



        accepted







        up vote
        1
        down vote



        accepted






        Well, as you had hoped, you don't really need a pom.xml for your project. I don't know if you need this to be fully portable, but here's something I mocked up based on maven:latest. This is done by taking advantage of the fact that the rhino jar file which is downloaded contains a MANIFEST.MF file that tells a java command how to execute it.



        contents of 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


        So:



        index.js



        print("Hello world");


        command line



        $ 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 (untested)



        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", ";" ]


        Edit:



        I should also note that the .m2 user subdirectory contains a repository that houses all the artifacts which maven downloads. The maven:latest Dockerfile appears to set this up under /root/.






        share|improve this answer














        Well, as you had hoped, you don't really need a pom.xml for your project. I don't know if you need this to be fully portable, but here's something I mocked up based on maven:latest. This is done by taking advantage of the fact that the rhino jar file which is downloaded contains a MANIFEST.MF file that tells a java command how to execute it.



        contents of 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


        So:



        index.js



        print("Hello world");


        command line



        $ 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 (untested)



        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", ";" ]


        Edit:



        I should also note that the .m2 user subdirectory contains a repository that houses all the artifacts which maven downloads. The maven:latest Dockerfile appears to set this up under /root/.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 10 at 3:04

























        answered Nov 10 at 2:25









        Jon Sampson

        75711022




        75711022



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53210434%2fcan-i-run-maven-artifact-from-docker%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Use pre created SQLite database for Android project in kotlin

            Darth Vader #20

            Ondo