Thursday, June 18, 2015

How to push build artifacts to remote repository using Maven

Hello! After a bit long time, I am writing a post in this "Gyan of Java" blog. Today, we will look into few concepts of Apache Maven building tool. Have you ever come across a situation where you need to push build artifacts to a remote repository? Have you ever come across a situation where you need to push third party artifacts to a remote repository? Let's look into these now.


To answer first query, need to add a <distributionManagement> tag entries in the pom.xml of the application.

Step: 1
 
<!-- remote repository server info where artifacts would be pushed -->
 <distributionManagement>
  <repository>
   <id>remoteRepo</id>
   <name>Internal Nexus Repository</name>
   <url>http://<remote host name>:<port name>/<remote repository path>/</url>
  </repository>
</distributionManagement>


Also, need to below add entries in the settings.xml file located in M2_HOME directory.

Step: 2
   <servers>
<server>
<id>remoteRepo</id>
<username><username></username>
<password><password></password>
</server>

  </servers>

 

 

After doing these changes, build your app with following command:

mvn clean deploy

 

Regarding the later question, pushing third party artifacts whose pom.xml is not available, below is the code snippet.

 

Step: 3

mvn deploy:deploy-file -DgroupId=com.company.app -DartifactId=appName -Dversion=1.0 -Dfile=<path-to-file>/appName.jar -Dpackaging=jar -DrepositoryId=remoteRepo -Durl=http://<remote host>:<port no>/<remote repository path> -DgeneratePom=true

 

but before executing Step :3 command, please make sure to add entries in settings.xml file as mentioned in Step: 2

 

 

Wednesday, June 10, 2015

How to pass environment variables to tomact

Just change the below file in order to pass environment variables to tomcat.

TOMCAT_HOME/bin/catalina.sh  

 

And keep the below line:

JAVA_OPTS="$JAVA_OPTS -Dkey=$value"