If you want to deploy artifacts that were not build using maven, or which were build using maven but their POMs did not contains the deployment detials, then you need to deploy them using the following:
mvn -e deploy:deploy-file
-DgroupId=com.test.jpa
-DartifactId=jpa-demo
-Dversion=1.0.0
-Dpackaging=jar
-Dfile=jpa-demo-1.0.0.jar
-Durl=http://localhost:8080/archiva/repository/internal/
-DrepositoryId=reppoId
url: specifies the remote maven repository to where the jar is to be uploaded
repositoryId: Id repository is secured, repositoryId is used to specify the credentials that are to be used for uploading. Repositories are defined in settings.xml.
e.g.
<servers>
<server>
<id>deploymentRepo</id>
<username>repouser</username>
<password>repopwd</password>
</server>
</servers>
Maven repository will return code 401 if credentials are missing or invalid.
Better way is to use deploy phase of the default build lifecycle. For that include a valid <distributionManagement/> section in project's pom.xml and define the remote repository using <repository/>.
If the repository is secured, you should configure your settings.xml file to define corresponding <server/> entries which provides authentication information.
pom.xml
...
<distributionManagement>
<repository>
<id>my.internal.repo</id>
<name>Internal Repository</name>
<url>http://...</url>
</repository>
</distributionManagement>
...
settings.xml
...
<server>
<id>my.internal.repo</id>
<username>user</username>
<password>pass</password>
</server>
...
maven deploy will not deploy the artifact to your remote repository.
mvn -e deploy:deploy-file
-DgroupId=com.test.jpa
-DartifactId=jpa-demo
-Dversion=1.0.0
-Dpackaging=jar
-Dfile=jpa-demo-1.0.0.jar
-Durl=http://localhost:8080/archiva/repository/internal/
-DrepositoryId=reppoId
url: specifies the remote maven repository to where the jar is to be uploaded
repositoryId: Id repository is secured, repositoryId is used to specify the credentials that are to be used for uploading. Repositories are defined in settings.xml.
e.g.
<servers>
<server>
<id>deploymentRepo</id>
<username>repouser</username>
<password>repopwd</password>
</server>
</servers>
Maven repository will return code 401 if credentials are missing or invalid.
Better way is to use deploy phase of the default build lifecycle. For that include a valid <distributionManagement/> section in project's pom.xml and define the remote repository using <repository/>.
If the repository is secured, you should configure your settings.xml file to define corresponding <server/> entries which provides authentication information.
pom.xml
...
<distributionManagement>
<repository>
<id>my.internal.repo</id>
<name>Internal Repository</name>
<url>http://...</url>
</repository>
</distributionManagement>
...
settings.xml
...
<server>
<id>my.internal.repo</id>
<username>user</username>
<password>pass</password>
</server>
...
maven deploy will not deploy the artifact to your remote repository.
Comments