6 Replies Latest reply on Mar 15, 2007 12:38 PM by pgier

    New JBoss Deploy Plugin

    pgier

      I created a new plugin called jboss-deploy-maven-plugin, and it is in the repository now. The common project is currently the only project configured to use it. Once common looks ok, then I will add it to other projects.

      Currently, the plugin simply copies the jars that it finds in the project target directory into a location specified through a property. And the plugin creates a file called component-info.xml using information from the pom.

      The plugin will automatically be called when "mvn deploy" is run. There are two basic options for specifying the location where the plugin should deploy the artifacts. I started this wiki entry to explain how to do this:

      http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossBuildMaven

      Right now the plugin requires that snapshots are enabled in the jboss maven plugin repository, and I had to change the jboss-parent pom to enable plugin snapshots. To get the new jboss-parent you might have to delete the local copy of this file in the local maven repository (~/.m2/repository)

        • 1. Re: New JBoss Deploy Plugin
          starksm64

          I tried the deploy target for the current jbossxb-2.0.0.CR1 I'm working on, and I did not have the jboss.repository.root define in my local settings.xml:

          [INFO] [jar:jar]
          [INFO] Building jar: /home/svn/Common/tags/jbossxb-2.0.0.CR1/target/jboss-xml-binding.jar
          [INFO] Preparing source:jar
          [WARNING] Removing: jar from forked lifecycle, to prevent recursive invocation.[INFO] No goals needed for project - skipping
          [INFO] [source:jar {execution: default}]
          [INFO] Building jar: /home/svn/Common/tags/jbossxb-2.0.0.CR1/target/jboss-xml-binding-sources.jar
          [INFO] [install:install]
          [INFO] Installing /home/svn/Common/tags/jbossxb-2.0.0.CR1/target/jboss-xml-binding.jar to /usr/Repository/repository.jboss.com/maven2/jboss/jbossxb/2.0.0.CR1/jbossxb-2.0.0.CR1.jar
          [INFO] Installing /home/svn/Common/tags/jbossxb-2.0.0.CR1/target/jboss-xml-binding-sources.jar to /usr/Repository/repository.jboss.com/maven2/jboss/jbossxb/2.0.0.CR1/jbossxb-2.0.0.CR1-sources.jar
          [INFO] [deploy:deploy]
          Uploading: file:///usr/Repository/repository.jboss.com/maven2/jboss/jbossxb/2.0.0.CR1/jbossxb-2.0.0.CR1.jar
          355K uploaded
          [INFO] Retrieving previous metadata from cvs-file-repository
          [INFO] Uploading repository metadata for: 'artifact jboss:jbossxb'
          [INFO] Retrieving previous metadata from cvs-file-repository
          [WARNING] *** CHECKSUM FAILED - Error retrieving checksum file for jboss/jbossxb/2.0.0.CR1/jbossxb-2.0.0.CR1.pom - IGNORING
          [INFO] Uploading project information for jbossxb 2.0.0.CR1
          Uploading: file:///usr/Repository/repository.jboss.com/maven2/jboss/jbossxb/2.0.0.CR1/jbossxb-2.0.0.CR1-sources.jar
          240K uploaded
          [INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESSFUL
          [INFO] ------------------------------------------------------------------------[INFO] Total time: 55 seconds
          [INFO] Finished at: Wed Mar 07 16:25:06 PST 2007
          [INFO] Final Memory: 13M/293M
          [INFO] ------------------------------------------------------------------------
          


          Maybe the CHECKSUM warning I can gather something is missing, but it would be good if the warning could say that jboss.repository.root was not defined or was pointing to an invalid location. However, after defining jboss.repository.root, I'm still not seeing any attempt to load jars to the ${jboss.repository.root}/jboss/jbossxb/2.0.0.CR1 location as would be expected:

          [INFO] [jar:jar]
          [INFO] Building jar: /home/svn/Common/tags/jbossxb-2.0.0.CR1/target/jboss-xml-binding.jar
          [INFO] Preparing source:jar
          [WARNING] Removing: jar from forked lifecycle, to prevent recursive invocation.[INFO] No goals needed for project - skipping
          [INFO] [source:jar {execution: default}]
          [INFO] Building jar: /home/svn/Common/tags/jbossxb-2.0.0.CR1/target/jboss-xml-binding-sources.jar
          [INFO] [install:install]
          [INFO] Installing /home/svn/Common/tags/jbossxb-2.0.0.CR1/target/jboss-xml-binding.jar to /usr/Repository/repository.jboss.com/maven2/jboss/jbossxb/2.0.0.CR1/jbossxb-2.0.0.CR1.jar
          [INFO] Installing /home/svn/Common/tags/jbossxb-2.0.0.CR1/target/jboss-xml-binding-sources.jar to /usr/Repository/repository.jboss.com/maven2/jboss/jbossxb/2.0.0.CR1/jbossxb-2.0.0.CR1-sources.jar
          [INFO] [deploy:deploy]
          Uploading: file:///usr/Repository/repository.jboss.com/maven2/jboss/jbossxb/2.0.0.CR1/jbossxb-2.0.0.CR1.jar
          355K uploaded
          [INFO] Retrieving previous metadata from cvs-file-repository
          [INFO] Uploading repository metadata for: 'artifact jboss:jbossxb'
          [INFO] Retrieving previous metadata from cvs-file-repository
          [INFO] Uploading project information for jbossxb 2.0.0.CR1
          Uploading: file:///usr/Repository/repository.jboss.com/maven2/jboss/jbossxb/2.0.0.CR1/jbossxb-2.0.0.CR1-sources.jar
          240K uploaded
          


          and I don't see anything new under ${jboss.repository.root}/jboss/jbossxb
          [starksm@succubus jbossxb-2.0.0.CR1]$ ls /usr/Repository/repository.jboss.com/jboss/jbossxb/
          1.0.0.CR3/ 1.0.0.CR6.patch01/ 1.0.1.TEST/ lib/
          1.0.0.CR4/ 1.0.0.CR7/ 1.0RC1/ snapshot/
          1.0.0.CR5/ 1.0.0.CR8/ 1.0RC2/
          1.0.0.CR5_JBoss-4.0.4.GA/ 1.0.0.CR9/ as405-snapshot/
          1.0.0.CR6/ 1.0.0.CR9-brew/ CVS/
          



          • 2. Re: New JBoss Deploy Plugin
            pgier

            The new plugin requires a plugin configuration. I added it to the common/build/pom.xml, but I didn't add it to jbossxb. I'm planning to eventually add the configuration to the parent pom so that configuration will be inherited in each project pom.

            Here is the extra config if you want to try adding it to the jbossxb pom:

             <plugin>
             <groupId>jboss.maven-plugins</groupId>
             <artifactId>jboss-deploy-maven-plugin</artifactId>
             <version>1.0-SNAPSHOT</version>
             <executions>
             <execution>
             <goals>
             <goal>jboss-deploy</goal>
             </goals>
             </execution>
             </executions>
             <configuration>
             <!-- In order to use this setting jboss.repository.root must be set on the command line or in
             settings.xml. More information can be found here: http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossBuildMaven -->
             <jbossDeployRoot>${jboss.repository.root}</jbossDeployRoot>
             </configuration>
             </plugin>
            


            You will have to add it to the build plugins section of the pom. Similar to how it is in the current version of common/build/pom.xml


            • 3. Re: New JBoss Deploy Plugin
              wolfc

              Some noob questions:
              Why isn't the extra configuration in the parent pom?
              Why hasn't the parent pom got a new version? I shouldn't have to delete the old one and then I can update my build project by just increasing the version num.
              Is the new one backwards compatible?

              • 4. Re: New JBoss Deploy Plugin
                pgier

                 

                "wolfc" wrote:
                Some noob questions:
                Why isn't the extra configuration in the parent pom?

                It's a new plugin, and I wanted to make sure everything is working. Also, I wasn't sure if every project would use the jboss-deploy-plugin. I will make a new version of the parent pom with the new plugin so you can use that one.
                "wolfc" wrote:

                Why hasn't the parent pom got a new version? I shouldn't have to delete the old one and then I can update my build project by just increasing the version num.
                Is the new one backwards compatible?

                Yes, the new parent pom should get a new version whenever there are changes.

                • 5. Re: New JBoss Deploy Plugin
                  wolfc

                  I spotted a few problems:

                  1. The maven artifacts are getting deployed to ${maven.cvs.root}, which is an unset variable. Do I have to set it, or should it be derived from jboss.repository.root by the plugin?
                  2. My aggrate is ignored:

                  [INFO] Ignoring project with packaging type: pom

                  3. Will imports be autogenerated or shall I add them to the poms (TODO in plugin)?

                  • 6. Re: New JBoss Deploy Plugin
                    pgier

                     

                    "wolfc" wrote:
                    I spotted a few problems:

                    1. The maven artifacts are getting deployed to ${maven.cvs.root}, which is an unset variable. Do I have to set it, or should it be derived from jboss.repository.root by the plugin?


                    They are two separate variable, so you will have to add ${maven.cvs.root} to your settings.xml. Since the location of these two repositories could be separate, they are separate variables. I will add some information to the wiki. I think I'll change ${maven.cvs.root} to ${maven.repository.root} in the next parent pom so that the names are more clear.

                    "wolfc" wrote:

                    2. My aggrate is ignored:
                    [INFO] Ignoring project with packaging type: pom

                    3. Will imports be autogenerated or shall I add them to the poms (TODO in plugin)?


                    Both of these are todo items. I wasn't sure how to handle aggregates with the deploy plugin, but I think I have some ideas now and I should be able to get that implemented next week.

                    For the imports, you can put the list into the deploy plugin configuration. I added a 1.1-beta version of the deploy plugin to the repository, and I updated the wiki page here with an example of how to use the imports and exports config.