Maven deploy Plugin: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
Line 27: Line 27:


This will create (with appropriate permissions) https://example.com/nexus/content/repositories/libs-release-local/blah/ec/template/test/1/test-1.zip
This will create (with appropriate permissions) https://example.com/nexus/content/repositories/libs-release-local/blah/ec/template/test/1/test-1.zip
=Deploying Programmatically an Artifact under a Different Name than its artifactId=
The name of an artifact as created in ./target can be changed using <finalName>. For more details on changing the artifact name see [[Maven_Concepts#Artifact_Name|Artifact Name]].
The name of the artifact that is being built can be changed with {{&lt;finalName&gt;}} as follows:
{{{
    <build>
            <finalName>simple-webapp</finalName>
    </build>
}}}
or
{{{
    <build>
        <finalName>${artifactId}</finalName>
    </build>
}}}
or
{{{
    <build>     
        <finalName>archimedes-${project.version}</finalName>
    </build>
}}}
or
{{{
    <build>
        <finalName>${parent.artifactId}-${artifactId}</finalName>
    </build>
}}}
However, the name won't propagate upon installation or deploy.
To install the artifact under a different name, do the following (please be aware that the artifact won't be deployed under the current module's directory, but under whatever is specified as "artifactId" below):
{{{
            <plugin>
                <!--
                    Installing the final artifact as "archimedes-*.ear" for convenience; it
                    will be available under 'archimedes' module, not 'ear'.
                -->
                <artifactId>maven-install-plugin</artifactId>
                <executions>
                    <execution>
                        <id>install-ear-as-archimedes</id>
                        <phase>install</phase>
                        <configuration>
                            <file>${project.build.directory}/${project.build.finalName}.ear</file>
                            <groupId>com.numberdog.archimedes</groupId>
                            <artifactId>archimedes</artifactId>
                            <version>${parent.version}</version>
                            <packaging>ear</packaging>
                        </configuration>
                        <goals>
                            <goal>install-file</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
}}}

Revision as of 16:23, 18 November 2016

External

Internal

Overview

The deploy plugin copies artifacts into a remote repository (the install plugin copies artifacts into the local repository).

Examples

Install Arbitrary Files as Binaries and Sources

mvn deploy:deploy-file -DgroupId=javax.transaction -DartifactId=jta -Dversion=1.0.1B \
     -Dpackaging=jar -Dfile="C:\tmp\jta-1.0.1B.jar" \
     -Durl="file://C:\Documents and Settings\user1\.m2" -DrepositoryId=repository
mvn deploy:deploy-file -DgroupId=ec.template -DartifactId=test -Dversion=1 -Dpackaging=zip \
   -Dfile=./test.zip -Durl=https://username:mypasswd@example.com/nexus/content/repositories/libs-release-local/blah

This will create (with appropriate permissions) https://example.com/nexus/content/repositories/libs-release-local/blah/ec/template/test/1/test-1.zip


Deploying Programmatically an Artifact under a Different Name than its artifactId

The name of an artifact as created in ./target can be changed using <finalName>. For more details on changing the artifact name see Artifact Name.


The name of the artifact that is being built can be changed with {{<finalName>}} as follows: {{{

    <build>
           <finalName>simple-webapp</finalName>
    </build>

}}} or {{{

   <build>
       <finalName>${artifactId}</finalName>
   </build>

}}} or {{{

   <build>       
        <finalName>archimedes-${project.version}</finalName>
   </build>

}}} or {{{

   <build>
       <finalName>${parent.artifactId}-${artifactId}</finalName>
   </build>

}}}

However, the name won't propagate upon installation or deploy.

To install the artifact under a different name, do the following (please be aware that the artifact won't be deployed under the current module's directory, but under whatever is specified as "artifactId" below):

{{{

           <plugin>
               <artifactId>maven-install-plugin</artifactId>
               <executions>
                   <execution>
                       <id>install-ear-as-archimedes</id>
                       <phase>install</phase>
                       <configuration>
                           <file>${project.build.directory}/${project.build.finalName}.ear</file>
                           <groupId>com.numberdog.archimedes</groupId>
                           <artifactId>archimedes</artifactId>
                           <version>${parent.version}</version>
                           <packaging>ear</packaging>
                       </configuration>
                       <goals>
                           <goal>install-file</goal>
                       </goals>
                   </execution>
               </executions>
           </plugin>

}}}