How do I capture the Maven Jar name as a part of a Hudson job?How to change the build directory of a Hudson job?How to view test results in Hudson?How can I start a hudson job using Python?Capture the build number for a remote-triggered Hudson job?How to start Hudson with the existing configuration?what is the best way to use gnumake with hudsonRunning Hudson builds with a lower process priorityHow can I download Maven artifacts in chef?How to modify the job page of individual job in hudson?Jenkins Maven job has no “Maven Installation” option

Beginner's snake game using PyGame

Why would Lupin kill Pettigrew?

count number of files in directory with a certain name

When a current flow in an inductor is interrupted, what limits the voltage rise?

Is having a hidden directory under /etc safe?

What is/are this/these giant NASA box(es)?

Is it possible to change original filename of an exe?

Creating Fictional Slavic Place Names

Looking after a wayward brother in mother's will

What's the most polite way to say "shut up and let me work"?

How does one "dump" or deplete propellant without changing spacecraft attitude or trajectory?

Where did the “vikings wear helmets with horn” stereotype come from and why?

What are the benefits of cryosleep?

Can a wire having a 610-670 THz (frequency of blue light) AC frequency supply, generate blue light?

Is there an explanation for Austria's Freedom Party virtually retaining its vote share despite recent scandal?

Did airlines fly their aircraft slower in response to oil prices in the 1970s?

Why is there a need to modify system call tables in linux?

Adding strings in lists together

What caused the tendency for conservatives to not support climate change regulations?

Preserving culinary oils

What are the slash markings on Gatwick's 08R/26L?

What is game ban VS VAC ban in steam?

Can't connect to Internet in bash using Mac OS

How can I include a header file that contains `>` in its name?



How do I capture the Maven Jar name as a part of a Hudson job?


How to change the build directory of a Hudson job?How to view test results in Hudson?How can I start a hudson job using Python?Capture the build number for a remote-triggered Hudson job?How to start Hudson with the existing configuration?what is the best way to use gnumake with hudsonRunning Hudson builds with a lower process priorityHow can I download Maven artifacts in chef?How to modify the job page of individual job in hudson?Jenkins Maven job has no “Maven Installation” option






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I have a Maven 3 job configured in my Hudson server.



When the Hudson server successfully builds the Maven jar, I have the jar being deployed to an SCP repository on another server.



I want to execute a relink.sh script on the remote host where one of the parameters is the name of the newly delivered jar file (e.g. /usr/bin/relink.sh myproject-0.0.2-SNAPSHOT.jar).



How do I get that Maven-based file / version name into a variable that I can then use in my Hudson call to execute the remote script?










share|improve this question




























    0















    I have a Maven 3 job configured in my Hudson server.



    When the Hudson server successfully builds the Maven jar, I have the jar being deployed to an SCP repository on another server.



    I want to execute a relink.sh script on the remote host where one of the parameters is the name of the newly delivered jar file (e.g. /usr/bin/relink.sh myproject-0.0.2-SNAPSHOT.jar).



    How do I get that Maven-based file / version name into a variable that I can then use in my Hudson call to execute the remote script?










    share|improve this question
























      0












      0








      0








      I have a Maven 3 job configured in my Hudson server.



      When the Hudson server successfully builds the Maven jar, I have the jar being deployed to an SCP repository on another server.



      I want to execute a relink.sh script on the remote host where one of the parameters is the name of the newly delivered jar file (e.g. /usr/bin/relink.sh myproject-0.0.2-SNAPSHOT.jar).



      How do I get that Maven-based file / version name into a variable that I can then use in my Hudson call to execute the remote script?










      share|improve this question














      I have a Maven 3 job configured in my Hudson server.



      When the Hudson server successfully builds the Maven jar, I have the jar being deployed to an SCP repository on another server.



      I want to execute a relink.sh script on the remote host where one of the parameters is the name of the newly delivered jar file (e.g. /usr/bin/relink.sh myproject-0.0.2-SNAPSHOT.jar).



      How do I get that Maven-based file / version name into a variable that I can then use in my Hudson call to execute the remote script?







      shell hudson maven






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Aug 18 '14 at 17:58









      Lorin S.Lorin S.

      7518




      7518




















          3 Answers
          3






          active

          oldest

          votes


















          0














          I'm not sure if you can or can't pass the variable, but a work-around would be to first copy the file to a staging directory, instead of directly to where you want it to go. Then have your script look in the staging directory for a file and move it:



          STAGE_DIR=/path/to/stage
          DEST_DIR=/path/to/dest
          LINK=/path/to/link.jar

          while read file; do
          mv $file $DEST_DIR
          ln -s -f $DEST_DIR/$(basename $file) $LINK
          done < <( find $STAGE_DIR -name "myproject*SNAPSHOT.jar" )


          You might want to do some error checking and exit with non-0 if there is, e.g., more than one file that matches, no files, etc. Have you solved the issue?






          share|improve this answer






























            0














            Like @zerodiff suggested there seems to be a number of ways to do this via Hudson but they all seemed to be brittle and difficult to maintain when managing a large number of projects. I instead used Maven's wagon plugin to implement the deployment via Maven instead of via Hudson.



            The configuration I used in the maven projects:



            <properties>
            <!-- Deploy -->
            <dev.server.hostname>192.168.1.1</dev.server.hostname>
            <application.name>test-application</application.name>
            <!-- Deploy -->
            </properties>

            <build>
            <extensions>
            <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh</artifactId>
            <version>1.0</version>
            </extension>
            </extensions>
            </build>

            <profiles>
            <profile>
            <id>hudson</id>
            <activation>
            <property>
            <name>env</name>
            <value>hudson</value>
            </property>
            </activation>
            <build>
            <filters>
            <filter>src/main/filters/$env-linux.properties</filter>
            <filter>src/main/filters/$env.properties</filter>
            </filters>
            <plugins>
            <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>wagon-maven-plugin</artifactId>
            <version>1.0-beta-5</version>
            <executions>
            <execution>
            <id>dev-deploy</id>
            <phase>deploy</phase>
            <goals>
            <goal>upload</goal>
            </goals>
            <configuration>
            <fromDir>$project.build.directory</fromDir>
            <includes>$project.build.finalName.jar</includes>
            <url>scp://$dev.server.hostname/</url>
            <toDir>/opt/$application.name</toDir>
            <serverId>dev-deploy-server</serverId>
            </configuration>
            </execution>
            <execution>
            <id>execute-dev-deploy-commands</id>
            <phase>deploy</phase>
            <goals>
            <goal>sshexec</goal>
            </goals>
            <configuration>
            <url>scp://$dev.server.hostname/</url>
            <serverId>dev-deploy-server</serverId>
            <commands>
            <command>sudo /etc/init.d/$application.name stop</command>
            <command>sleep 2</command>
            <command>sudo /opt/$application.name/relink.sh $project.build.finalName.jar</command>
            <command>sudo /etc/init.d/$application.name start</command>
            </commands>
            </configuration>
            </execution>
            </executions>
            </plugin>
            </plugins>
            </build>
            </profile>
            </profiles>


            In my maven settings.xml, I have the credentials for the dev-deploy-server:



             <server>
            <id>dev-deploy-server</id>
            <username>hudson_bot</username>
            </server>


            With the Maven plugin in Hudson, I added the "Invoke Maven 3" Build directive and:



            • Goals: clean deploy

            • Properties: env=hudson

            Finally I set up the security between the two servers so that "hudson_bot" could scp to the dev-deploy-server and gave hudson_bot sudoer NO_PASSWD privileges to the two mentioned scripts in the ssh execute element.






            share|improve this answer






























              0














              You want to get the jar artifact name from Maven itself in order to prevent adjusting your script when developers change the artifact's id or version. Scanning for *.jar files is not elegant as it would match more than the main artifact (e.g. *-javadoc.jar).
              So to get the main artifact version from Maven I rely on 2 facts:



              • by default, the jar plugin uses the artifact's id and version for the final jar artifact, e.g. target/the-service-0.0.1-SNAPSHOT.jar


              • the artifact's id, group and version are stored in pom.properties



                $ cat target/maven-archiver/pom.properties
                #Generated by Apache Maven
                #Fri Jul 06 15:10:03 CEST 2018
                version=0.0.1-SNAPSHOT
                groupId=net.company
                artifactId=the-service


              Note that java devs can still change the default build folder target and break your hudson job.






              share|improve this answer

























                Your Answer








                StackExchange.ready(function()
                var channelOptions =
                tags: "".split(" "),
                id: "2"
                ;
                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',
                autoActivateHeartbeat: false,
                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%2fserverfault.com%2fquestions%2f622247%2fhow-do-i-capture-the-maven-jar-name-as-a-part-of-a-hudson-job%23new-answer', 'question_page');

                );

                Post as a guest















                Required, but never shown

























                3 Answers
                3






                active

                oldest

                votes








                3 Answers
                3






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                0














                I'm not sure if you can or can't pass the variable, but a work-around would be to first copy the file to a staging directory, instead of directly to where you want it to go. Then have your script look in the staging directory for a file and move it:



                STAGE_DIR=/path/to/stage
                DEST_DIR=/path/to/dest
                LINK=/path/to/link.jar

                while read file; do
                mv $file $DEST_DIR
                ln -s -f $DEST_DIR/$(basename $file) $LINK
                done < <( find $STAGE_DIR -name "myproject*SNAPSHOT.jar" )


                You might want to do some error checking and exit with non-0 if there is, e.g., more than one file that matches, no files, etc. Have you solved the issue?






                share|improve this answer



























                  0














                  I'm not sure if you can or can't pass the variable, but a work-around would be to first copy the file to a staging directory, instead of directly to where you want it to go. Then have your script look in the staging directory for a file and move it:



                  STAGE_DIR=/path/to/stage
                  DEST_DIR=/path/to/dest
                  LINK=/path/to/link.jar

                  while read file; do
                  mv $file $DEST_DIR
                  ln -s -f $DEST_DIR/$(basename $file) $LINK
                  done < <( find $STAGE_DIR -name "myproject*SNAPSHOT.jar" )


                  You might want to do some error checking and exit with non-0 if there is, e.g., more than one file that matches, no files, etc. Have you solved the issue?






                  share|improve this answer

























                    0












                    0








                    0







                    I'm not sure if you can or can't pass the variable, but a work-around would be to first copy the file to a staging directory, instead of directly to where you want it to go. Then have your script look in the staging directory for a file and move it:



                    STAGE_DIR=/path/to/stage
                    DEST_DIR=/path/to/dest
                    LINK=/path/to/link.jar

                    while read file; do
                    mv $file $DEST_DIR
                    ln -s -f $DEST_DIR/$(basename $file) $LINK
                    done < <( find $STAGE_DIR -name "myproject*SNAPSHOT.jar" )


                    You might want to do some error checking and exit with non-0 if there is, e.g., more than one file that matches, no files, etc. Have you solved the issue?






                    share|improve this answer













                    I'm not sure if you can or can't pass the variable, but a work-around would be to first copy the file to a staging directory, instead of directly to where you want it to go. Then have your script look in the staging directory for a file and move it:



                    STAGE_DIR=/path/to/stage
                    DEST_DIR=/path/to/dest
                    LINK=/path/to/link.jar

                    while read file; do
                    mv $file $DEST_DIR
                    ln -s -f $DEST_DIR/$(basename $file) $LINK
                    done < <( find $STAGE_DIR -name "myproject*SNAPSHOT.jar" )


                    You might want to do some error checking and exit with non-0 if there is, e.g., more than one file that matches, no files, etc. Have you solved the issue?







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Aug 29 '14 at 21:27









                    zerodiffzerodiff

                    1012




                    1012























                        0














                        Like @zerodiff suggested there seems to be a number of ways to do this via Hudson but they all seemed to be brittle and difficult to maintain when managing a large number of projects. I instead used Maven's wagon plugin to implement the deployment via Maven instead of via Hudson.



                        The configuration I used in the maven projects:



                        <properties>
                        <!-- Deploy -->
                        <dev.server.hostname>192.168.1.1</dev.server.hostname>
                        <application.name>test-application</application.name>
                        <!-- Deploy -->
                        </properties>

                        <build>
                        <extensions>
                        <extension>
                        <groupId>org.apache.maven.wagon</groupId>
                        <artifactId>wagon-ssh</artifactId>
                        <version>1.0</version>
                        </extension>
                        </extensions>
                        </build>

                        <profiles>
                        <profile>
                        <id>hudson</id>
                        <activation>
                        <property>
                        <name>env</name>
                        <value>hudson</value>
                        </property>
                        </activation>
                        <build>
                        <filters>
                        <filter>src/main/filters/$env-linux.properties</filter>
                        <filter>src/main/filters/$env.properties</filter>
                        </filters>
                        <plugins>
                        <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>wagon-maven-plugin</artifactId>
                        <version>1.0-beta-5</version>
                        <executions>
                        <execution>
                        <id>dev-deploy</id>
                        <phase>deploy</phase>
                        <goals>
                        <goal>upload</goal>
                        </goals>
                        <configuration>
                        <fromDir>$project.build.directory</fromDir>
                        <includes>$project.build.finalName.jar</includes>
                        <url>scp://$dev.server.hostname/</url>
                        <toDir>/opt/$application.name</toDir>
                        <serverId>dev-deploy-server</serverId>
                        </configuration>
                        </execution>
                        <execution>
                        <id>execute-dev-deploy-commands</id>
                        <phase>deploy</phase>
                        <goals>
                        <goal>sshexec</goal>
                        </goals>
                        <configuration>
                        <url>scp://$dev.server.hostname/</url>
                        <serverId>dev-deploy-server</serverId>
                        <commands>
                        <command>sudo /etc/init.d/$application.name stop</command>
                        <command>sleep 2</command>
                        <command>sudo /opt/$application.name/relink.sh $project.build.finalName.jar</command>
                        <command>sudo /etc/init.d/$application.name start</command>
                        </commands>
                        </configuration>
                        </execution>
                        </executions>
                        </plugin>
                        </plugins>
                        </build>
                        </profile>
                        </profiles>


                        In my maven settings.xml, I have the credentials for the dev-deploy-server:



                         <server>
                        <id>dev-deploy-server</id>
                        <username>hudson_bot</username>
                        </server>


                        With the Maven plugin in Hudson, I added the "Invoke Maven 3" Build directive and:



                        • Goals: clean deploy

                        • Properties: env=hudson

                        Finally I set up the security between the two servers so that "hudson_bot" could scp to the dev-deploy-server and gave hudson_bot sudoer NO_PASSWD privileges to the two mentioned scripts in the ssh execute element.






                        share|improve this answer



























                          0














                          Like @zerodiff suggested there seems to be a number of ways to do this via Hudson but they all seemed to be brittle and difficult to maintain when managing a large number of projects. I instead used Maven's wagon plugin to implement the deployment via Maven instead of via Hudson.



                          The configuration I used in the maven projects:



                          <properties>
                          <!-- Deploy -->
                          <dev.server.hostname>192.168.1.1</dev.server.hostname>
                          <application.name>test-application</application.name>
                          <!-- Deploy -->
                          </properties>

                          <build>
                          <extensions>
                          <extension>
                          <groupId>org.apache.maven.wagon</groupId>
                          <artifactId>wagon-ssh</artifactId>
                          <version>1.0</version>
                          </extension>
                          </extensions>
                          </build>

                          <profiles>
                          <profile>
                          <id>hudson</id>
                          <activation>
                          <property>
                          <name>env</name>
                          <value>hudson</value>
                          </property>
                          </activation>
                          <build>
                          <filters>
                          <filter>src/main/filters/$env-linux.properties</filter>
                          <filter>src/main/filters/$env.properties</filter>
                          </filters>
                          <plugins>
                          <plugin>
                          <groupId>org.codehaus.mojo</groupId>
                          <artifactId>wagon-maven-plugin</artifactId>
                          <version>1.0-beta-5</version>
                          <executions>
                          <execution>
                          <id>dev-deploy</id>
                          <phase>deploy</phase>
                          <goals>
                          <goal>upload</goal>
                          </goals>
                          <configuration>
                          <fromDir>$project.build.directory</fromDir>
                          <includes>$project.build.finalName.jar</includes>
                          <url>scp://$dev.server.hostname/</url>
                          <toDir>/opt/$application.name</toDir>
                          <serverId>dev-deploy-server</serverId>
                          </configuration>
                          </execution>
                          <execution>
                          <id>execute-dev-deploy-commands</id>
                          <phase>deploy</phase>
                          <goals>
                          <goal>sshexec</goal>
                          </goals>
                          <configuration>
                          <url>scp://$dev.server.hostname/</url>
                          <serverId>dev-deploy-server</serverId>
                          <commands>
                          <command>sudo /etc/init.d/$application.name stop</command>
                          <command>sleep 2</command>
                          <command>sudo /opt/$application.name/relink.sh $project.build.finalName.jar</command>
                          <command>sudo /etc/init.d/$application.name start</command>
                          </commands>
                          </configuration>
                          </execution>
                          </executions>
                          </plugin>
                          </plugins>
                          </build>
                          </profile>
                          </profiles>


                          In my maven settings.xml, I have the credentials for the dev-deploy-server:



                           <server>
                          <id>dev-deploy-server</id>
                          <username>hudson_bot</username>
                          </server>


                          With the Maven plugin in Hudson, I added the "Invoke Maven 3" Build directive and:



                          • Goals: clean deploy

                          • Properties: env=hudson

                          Finally I set up the security between the two servers so that "hudson_bot" could scp to the dev-deploy-server and gave hudson_bot sudoer NO_PASSWD privileges to the two mentioned scripts in the ssh execute element.






                          share|improve this answer

























                            0












                            0








                            0







                            Like @zerodiff suggested there seems to be a number of ways to do this via Hudson but they all seemed to be brittle and difficult to maintain when managing a large number of projects. I instead used Maven's wagon plugin to implement the deployment via Maven instead of via Hudson.



                            The configuration I used in the maven projects:



                            <properties>
                            <!-- Deploy -->
                            <dev.server.hostname>192.168.1.1</dev.server.hostname>
                            <application.name>test-application</application.name>
                            <!-- Deploy -->
                            </properties>

                            <build>
                            <extensions>
                            <extension>
                            <groupId>org.apache.maven.wagon</groupId>
                            <artifactId>wagon-ssh</artifactId>
                            <version>1.0</version>
                            </extension>
                            </extensions>
                            </build>

                            <profiles>
                            <profile>
                            <id>hudson</id>
                            <activation>
                            <property>
                            <name>env</name>
                            <value>hudson</value>
                            </property>
                            </activation>
                            <build>
                            <filters>
                            <filter>src/main/filters/$env-linux.properties</filter>
                            <filter>src/main/filters/$env.properties</filter>
                            </filters>
                            <plugins>
                            <plugin>
                            <groupId>org.codehaus.mojo</groupId>
                            <artifactId>wagon-maven-plugin</artifactId>
                            <version>1.0-beta-5</version>
                            <executions>
                            <execution>
                            <id>dev-deploy</id>
                            <phase>deploy</phase>
                            <goals>
                            <goal>upload</goal>
                            </goals>
                            <configuration>
                            <fromDir>$project.build.directory</fromDir>
                            <includes>$project.build.finalName.jar</includes>
                            <url>scp://$dev.server.hostname/</url>
                            <toDir>/opt/$application.name</toDir>
                            <serverId>dev-deploy-server</serverId>
                            </configuration>
                            </execution>
                            <execution>
                            <id>execute-dev-deploy-commands</id>
                            <phase>deploy</phase>
                            <goals>
                            <goal>sshexec</goal>
                            </goals>
                            <configuration>
                            <url>scp://$dev.server.hostname/</url>
                            <serverId>dev-deploy-server</serverId>
                            <commands>
                            <command>sudo /etc/init.d/$application.name stop</command>
                            <command>sleep 2</command>
                            <command>sudo /opt/$application.name/relink.sh $project.build.finalName.jar</command>
                            <command>sudo /etc/init.d/$application.name start</command>
                            </commands>
                            </configuration>
                            </execution>
                            </executions>
                            </plugin>
                            </plugins>
                            </build>
                            </profile>
                            </profiles>


                            In my maven settings.xml, I have the credentials for the dev-deploy-server:



                             <server>
                            <id>dev-deploy-server</id>
                            <username>hudson_bot</username>
                            </server>


                            With the Maven plugin in Hudson, I added the "Invoke Maven 3" Build directive and:



                            • Goals: clean deploy

                            • Properties: env=hudson

                            Finally I set up the security between the two servers so that "hudson_bot" could scp to the dev-deploy-server and gave hudson_bot sudoer NO_PASSWD privileges to the two mentioned scripts in the ssh execute element.






                            share|improve this answer













                            Like @zerodiff suggested there seems to be a number of ways to do this via Hudson but they all seemed to be brittle and difficult to maintain when managing a large number of projects. I instead used Maven's wagon plugin to implement the deployment via Maven instead of via Hudson.



                            The configuration I used in the maven projects:



                            <properties>
                            <!-- Deploy -->
                            <dev.server.hostname>192.168.1.1</dev.server.hostname>
                            <application.name>test-application</application.name>
                            <!-- Deploy -->
                            </properties>

                            <build>
                            <extensions>
                            <extension>
                            <groupId>org.apache.maven.wagon</groupId>
                            <artifactId>wagon-ssh</artifactId>
                            <version>1.0</version>
                            </extension>
                            </extensions>
                            </build>

                            <profiles>
                            <profile>
                            <id>hudson</id>
                            <activation>
                            <property>
                            <name>env</name>
                            <value>hudson</value>
                            </property>
                            </activation>
                            <build>
                            <filters>
                            <filter>src/main/filters/$env-linux.properties</filter>
                            <filter>src/main/filters/$env.properties</filter>
                            </filters>
                            <plugins>
                            <plugin>
                            <groupId>org.codehaus.mojo</groupId>
                            <artifactId>wagon-maven-plugin</artifactId>
                            <version>1.0-beta-5</version>
                            <executions>
                            <execution>
                            <id>dev-deploy</id>
                            <phase>deploy</phase>
                            <goals>
                            <goal>upload</goal>
                            </goals>
                            <configuration>
                            <fromDir>$project.build.directory</fromDir>
                            <includes>$project.build.finalName.jar</includes>
                            <url>scp://$dev.server.hostname/</url>
                            <toDir>/opt/$application.name</toDir>
                            <serverId>dev-deploy-server</serverId>
                            </configuration>
                            </execution>
                            <execution>
                            <id>execute-dev-deploy-commands</id>
                            <phase>deploy</phase>
                            <goals>
                            <goal>sshexec</goal>
                            </goals>
                            <configuration>
                            <url>scp://$dev.server.hostname/</url>
                            <serverId>dev-deploy-server</serverId>
                            <commands>
                            <command>sudo /etc/init.d/$application.name stop</command>
                            <command>sleep 2</command>
                            <command>sudo /opt/$application.name/relink.sh $project.build.finalName.jar</command>
                            <command>sudo /etc/init.d/$application.name start</command>
                            </commands>
                            </configuration>
                            </execution>
                            </executions>
                            </plugin>
                            </plugins>
                            </build>
                            </profile>
                            </profiles>


                            In my maven settings.xml, I have the credentials for the dev-deploy-server:



                             <server>
                            <id>dev-deploy-server</id>
                            <username>hudson_bot</username>
                            </server>


                            With the Maven plugin in Hudson, I added the "Invoke Maven 3" Build directive and:



                            • Goals: clean deploy

                            • Properties: env=hudson

                            Finally I set up the security between the two servers so that "hudson_bot" could scp to the dev-deploy-server and gave hudson_bot sudoer NO_PASSWD privileges to the two mentioned scripts in the ssh execute element.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Aug 30 '14 at 14:19









                            Lorin S.Lorin S.

                            7518




                            7518





















                                0














                                You want to get the jar artifact name from Maven itself in order to prevent adjusting your script when developers change the artifact's id or version. Scanning for *.jar files is not elegant as it would match more than the main artifact (e.g. *-javadoc.jar).
                                So to get the main artifact version from Maven I rely on 2 facts:



                                • by default, the jar plugin uses the artifact's id and version for the final jar artifact, e.g. target/the-service-0.0.1-SNAPSHOT.jar


                                • the artifact's id, group and version are stored in pom.properties



                                  $ cat target/maven-archiver/pom.properties
                                  #Generated by Apache Maven
                                  #Fri Jul 06 15:10:03 CEST 2018
                                  version=0.0.1-SNAPSHOT
                                  groupId=net.company
                                  artifactId=the-service


                                Note that java devs can still change the default build folder target and break your hudson job.






                                share|improve this answer





























                                  0














                                  You want to get the jar artifact name from Maven itself in order to prevent adjusting your script when developers change the artifact's id or version. Scanning for *.jar files is not elegant as it would match more than the main artifact (e.g. *-javadoc.jar).
                                  So to get the main artifact version from Maven I rely on 2 facts:



                                  • by default, the jar plugin uses the artifact's id and version for the final jar artifact, e.g. target/the-service-0.0.1-SNAPSHOT.jar


                                  • the artifact's id, group and version are stored in pom.properties



                                    $ cat target/maven-archiver/pom.properties
                                    #Generated by Apache Maven
                                    #Fri Jul 06 15:10:03 CEST 2018
                                    version=0.0.1-SNAPSHOT
                                    groupId=net.company
                                    artifactId=the-service


                                  Note that java devs can still change the default build folder target and break your hudson job.






                                  share|improve this answer



























                                    0












                                    0








                                    0







                                    You want to get the jar artifact name from Maven itself in order to prevent adjusting your script when developers change the artifact's id or version. Scanning for *.jar files is not elegant as it would match more than the main artifact (e.g. *-javadoc.jar).
                                    So to get the main artifact version from Maven I rely on 2 facts:



                                    • by default, the jar plugin uses the artifact's id and version for the final jar artifact, e.g. target/the-service-0.0.1-SNAPSHOT.jar


                                    • the artifact's id, group and version are stored in pom.properties



                                      $ cat target/maven-archiver/pom.properties
                                      #Generated by Apache Maven
                                      #Fri Jul 06 15:10:03 CEST 2018
                                      version=0.0.1-SNAPSHOT
                                      groupId=net.company
                                      artifactId=the-service


                                    Note that java devs can still change the default build folder target and break your hudson job.






                                    share|improve this answer















                                    You want to get the jar artifact name from Maven itself in order to prevent adjusting your script when developers change the artifact's id or version. Scanning for *.jar files is not elegant as it would match more than the main artifact (e.g. *-javadoc.jar).
                                    So to get the main artifact version from Maven I rely on 2 facts:



                                    • by default, the jar plugin uses the artifact's id and version for the final jar artifact, e.g. target/the-service-0.0.1-SNAPSHOT.jar


                                    • the artifact's id, group and version are stored in pom.properties



                                      $ cat target/maven-archiver/pom.properties
                                      #Generated by Apache Maven
                                      #Fri Jul 06 15:10:03 CEST 2018
                                      version=0.0.1-SNAPSHOT
                                      groupId=net.company
                                      artifactId=the-service


                                    Note that java devs can still change the default build folder target and break your hudson job.







                                    share|improve this answer














                                    share|improve this answer



                                    share|improve this answer








                                    edited Jul 6 '18 at 14:13

























                                    answered Jul 6 '18 at 13:24









                                    AlexAlex

                                    11




                                    11



























                                        draft saved

                                        draft discarded
















































                                        Thanks for contributing an answer to Server Fault!


                                        • 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%2fserverfault.com%2fquestions%2f622247%2fhow-do-i-capture-the-maven-jar-name-as-a-part-of-a-hudson-job%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

                                        Wikipedia:Vital articles Мазмуну Biography - Өмүр баян Philosophy and psychology - Философия жана психология Religion - Дин Social sciences - Коомдук илимдер Language and literature - Тил жана адабият Science - Илим Technology - Технология Arts and recreation - Искусство жана эс алуу History and geography - Тарых жана география Навигация менюсу

                                        Bruxelas-Capital Índice Historia | Composición | Situación lingüística | Clima | Cidades irmandadas | Notas | Véxase tamén | Menú de navegacióneO uso das linguas en Bruxelas e a situación do neerlandés"Rexión de Bruxelas Capital"o orixinalSitio da rexiónPáxina de Bruselas no sitio da Oficina de Promoción Turística de Valonia e BruxelasMapa Interactivo da Rexión de Bruxelas-CapitaleeWorldCat332144929079854441105155190212ID28008674080552-90000 0001 0666 3698n94104302ID540940339365017018237

                                        What should I write in an apology letter, since I have decided not to join a company after accepting an offer letterShould I keep looking after accepting a job offer?What should I do when I've been verbally told I would get an offer letter, but still haven't gotten one after 4 weeks?Do I accept an offer from a company that I am not likely to join?New job hasn't confirmed starting date and I want to give current employer as much notice as possibleHow should I address my manager in my resignation letter?HR delayed background verification, now jobless as resignedNo email communication after accepting a formal written offer. How should I phrase the call?What should I do if after receiving a verbal offer letter I am informed that my written job offer is put on hold due to some internal issues?Should I inform the current employer that I am about to resign within 1-2 weeks since I have signed the offer letter and waiting for visa?What company will do, if I send their offer letter to another company