Header Ads Widget

Responsive Advertisement

Convert Maven settings.xml & pom.xml to Gradle build.gradle for java app


 

Converting settings.xml and pom.xml from Maven to build.gradle in Gradle involves translating Maven's repository settings, profiles, mirrors, and authentication details into Gradle's DSL for java application. Here’s how to do it step by step:



1. Identify Relevant Sections in settings.xml

Maven’s settings.xml typically contains:

  • Repositories (central, mirrors, etc.)
  • Authentication credentials (server credentials)
  • Profiles (used to define custom build configurations)
  • Active profiles (which profile is in use)

 

Profiles

Gradle uses properties instead of profiles. Convert Maven profiles into Gradle properties:

ext {

    isCustomProfileEnabled = project.hasProperty('customProfile')

}

 

repositories {

    if (isCustomProfileEnabled) {

        maven {

            url "https://your.company.com/repository/maven-releases/"

        }

    }

}

 

Final Thoughts

  • Repositories: Move <repositories> and <mirrors> into Gradle’s repositories block.
  • Authentication: Use credentials {} inside maven {} and avoid hardcoding passwords.
  • Profiles: Use Gradle properties (-PprofileName) instead of Maven <profiles>.
  • Global Configuration: Use an init.gradle file if you need settings for multiple projects.

1. Identify Key Sections in pom.xml

Your pom.xml includes:

  • Basic project metadata (groupId, artifactId, version)
  • Properties (JDK version, dependencies versions, encoding, etc.)
  • Build plugins (not listed yet but will be needed)

 

Maven (pom.xml)

Gradle (build.gradle)

<groupId>com.kartik.1kcm</groupId>

group = 'com.kartik.1kcm'

<artifactId>KartikInterface</artifactId>

artifactId is not explicitly needed in Gradle. This is declare in settings.gradle file rootProject.name=KartikInterface

<version>${revision}</version>

version = project.findProperty('revision') ?: '1.0.1-SNAPSHOT'

<properties>

Converted to Gradle properties (project.findProperty('propertyName'))

<jdk.version>17</jdk.version>

sourceCompatibility = JavaVersion.VERSION_17

<maven.compiler.source>17</maven.compiler.source>

sourceCompatibility = JavaVersion.VERSION_17

<maven.compiler.target>17</maven.compiler.target>

targetCompatibility = JavaVersion.VERSION_17

<revision>1.0.1-SNAPSHOT</revision>

Handled via project.findProperty('revision')

<commons-cli-version>1.3.1</commons-cli-version>

Used in dependencies section

<skipTests>true</skipTests>

tasks.withType(Test) { enabled = false }

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

options.encoding = 'UTF-8'

 


 

 

Here is the equivalent build.gradle file for your Maven pom.xml, Learn Gradle syntax:

Changes Description

maven

Gradle

Settings.xml

<settings>
<servers>
<server>
<username>k09999</username>
<password>xxxxx</password>
<id>central</id>
</server>
<server>
<username>k09999</username>
<password>xxxxy</password>
<id>snapshot</id>
</server>
</server>
</servers>
<profiles>
<profile>
<repositories>
<repository>
<snapshots>
<enable>false</enable>
<snapshots>
<id>central</id>
<name>stagging-release</name>
<url> https:// your-insecure-stagging-repo-url</url>
</repository>
<repository>
<snapshots/>
<id>snapshots</id>
<name>promoted-release</name>
<url> https:// your-secure-stagging-repo-url</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enable>false</enable>
<snapshots>
<id>central</id>
<name>stagging-release</name>
<url> https:// your-insecure-stagging-repo-url</url>
</pluginRepository>
<pluginRepository>
<snapshots/>
<id> snapshots </id>
<name>promoted-release</name>
<url> https:// your-secure-stagging-repo-url</url>
</pluginRepository>
</pluginRepositories>
<id>artifactory</id>
</profile>
</profiles>
<mirrors>
<id>maven-default-http-blocker</id>
<mirrorof>dummy</mirrorof>
<name>dummy mirror to override default block</name>
<url>http://0.0.0.0/</url>
</mirror>
</mirrors>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>

build.gradle

repositories {
   mavenCentral()
}

Settings.xml  Allow
Insecure Protocols
for http url

 

build.gradle

repositories {
maven {
url 'http://your-insecure-repo-url'
allowInsecureProtocol = true
}
}

Single repo with
Secure Https
protocol

<settings>
<servers>
<server>
<username>k09999</username>
<password>xxxxx</password>
<id>central</id>
</server>
<server>
<username>k09999</username>
<password>xxxxy</password>
<id>snapshot</id>
</server>
</server>
</servers>
<profiles>
<profile>
<repositories>
<repository>
<snapshots>
<enable>false</enable>
<snapshots>
<id>central</id>
<name>stagging-release</name>
<url> https:// your-insecure-stagging-repo-url</url>
</repository>
<repository>
<snapshots/>
<id>snapshots</id>
<name>promoted-release</name>
<url> https:// your-secure-stagging-repo-url</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enable>false</enable>
<snapshots>
<id>central</id>
<name>stagging-release</name>
<url> https:// your-insecure-stagging-repo-url</url>
</pluginRepository>
<pluginRepository>
<snapshots/>
<id> snapshots </id>
<name>promoted-release</name>
<url> https:// your-secure-stagging-repo-url</url>
</pluginRepository>
</pluginRepositories>
<id>artifactory</id>
</profile>
</profiles>
<mirrors>
<id>maven-default-http-blocker</id>
<mirrorof>dummy</mirrorof>
<name>dummy mirror to override default block</name>
<url>http://0.0.0.0/</url>
</mirror>
</mirrors>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>

build.gradle

repositories {
  maven{
     name=”maven-stagging”
   credentials {
    username =”K09999”
    password=”XXXXX”
   }
   url = uri(“https:// your-secure-repo-url'”)
  }
   mavenCentral()
}

multiple repo with
Secure Https
protocol

<settings>
<servers>
<server>
<username>k09999</username>
<password>xxxxx</password>
<id>central</id>
</server>
<server>
<username>k09999</username>
<password>xxxxy</password>
<id>snapshot</id>
</server>
</server>
</servers>
<profiles>
<profile>
<repositories>
<repository>
<snapshots>
<enable>false</enable>
<snapshots>
<id>central</id>
<name>stagging-release</name>
<url> https:// your-insecure-stagging-repo-url</url>
</repository>
<repository>
<snapshots/>
<id>snapshots</id>
<name>promoted-release</name>
<url> https:// your-secure-stagging-repo-url</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enable>false</enable>
<snapshots>
<id>central</id>
<name>stagging-release</name>
<url> https:// your-insecure-stagging-repo-url</url>
</pluginRepository>
<pluginRepository>
<snapshots/>
<id> snapshots </id>
<name>promoted-release</name>
<url> https:// your-secure-stagging-repo-url</url>
</pluginRepository>
</pluginRepositories>
<id>artifactory</id>
</profile>
</profiles>
<mirrors>
<id>maven-default-http-blocker</id>
<mirrorof>dummy</mirrorof>
<name>dummy mirror to override default block</name>
<url>http://0.0.0.0/</url>
</mirror>
</mirrors>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>

build.gradle

repositories {
  maven{
     name=”maven-stagging”
   credentials {
    username =”K09999”
    password=”XXXXX”
   }
   url = uri(“https:// your-insecure-stagging-repo-url'”)
  }

maven{
     name=”maven-promoted”
   credentials {
    username =”K09999”
    password=”XXXXX”
   }
   url = uri(“https:// your-secure-promoted-repo-url'”)
  }

   mavenCentral()
}

Take user name
password from
repo or properties
file

 

build.gradle

repositories {
  maven{
     name=”maven-stagging”
   credentials {
 username= findproperty(“repo1.username”) ?:System.getenv(“REPO1_USERNAME”)
 password= findproperty(“repo1.password”) ?:System.getenv(“REPO1_PASSWORD”)
   }
   url = uri(“https:// your-insecure-stagging-repo-url'”)
  }

maven{
     name=”maven-promoted”
   credentials {
username= findproperty(“repo2.username”) ?:System.getenv(“REPO2_USERNAME”)
 password= findproperty(“repo2.password”) ?:System.getenv(“REPO2_PASSWORD”)
   }
   url = uri(“https:// your-insecure-promoted-repo-url'”)
  }

   mavenCentral()
}

Settings.xml  for mirror

<mirrors>
   <id>maven-default-http-blocker</id>
   <mirrorof>dummy</mirrorof>
  <name>dummy mirror to override default block</name>
<url>http://0.0.0.0/</url>
</mirror>
</mirrors>

build.gradle

maven{
     name=”maven-default-http-blocker”
     url = uri(“https://0.0.0.0/”)
     allowInsecureProtocol = true
  }

Pom File Maven group id

<groupId> com.kcm.social-management</groupId>

build.gradle

group = ‘com.kcm.social-management’

Maven Project Artificat Id

<artificatId>KcmInterface</artificatId>

settings.gradle
rootProject.name=KcmIntreface

Maven project
version

<version>${revision}</version>

<properties>
<jdk.version>17</ jdk.version>
<log4j.version>1.2.18</ log4j.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler. target>
<revision>1.0.1-SNAPSHOT</revision>
</properties>

build.gradle

version=findProperty(‘revision’)?:1.0-SNAPSHOT

Java setup

<properties>
<jdk.version>17</ jdk.version>
<log4j.version>1.2.18</ log4j.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler. target>
</properties>

<build>
   <artificateId>maven.compiler-plugin</artificateId>    
<version>3.10.1</version>
   <configuration>
     <source>${jdk.version}</source>
    <target>${jdk.version}</target >
   </configuration>
</build>

build.gradle

plugins {
 id ‘java’
}

Java {
sourceCompatibility = Javaversion.VERSION_17
targetCompatibility = Javaversion.VERSION_17
}

Or

java { toolchain { languageVersion.set(JavaLanguageVersion.of(System.getProperty("jdk.version").toInteger())) } }

Maven to gradle

<properties>
<jdk.version>17</ jdk.version>
<log4j.version>1.2.18</ log4j.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler. target>
</properties>

<build>
   <artificateId>maven.compiler-plugin</artificateId>    
<version>3.10.1</version>
   <configuration>
     <source>${jdk.version}</source>
    <target>${jdk.version}</target >
   </configuration>
</build>

plugins {
Id ‘maven-publish’
}

Encoding UTF-8

<properties>
<jdk.version>17</ jdk.version>
<log4j.version>1.2.18</ log4j.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler. target>
<project.build.sourceEncoding>UTF-8</ project.build.sourceEncoding>
</properties>

<build>
   <artificateId>maven.compiler-plugin</artificateId>    
<version>3.10.1</version>
   <configuration>
     <source>${jdk.version}</source>
    <target>${jdk.version}</target>
   <encoding>${project.build.sourceEncoding}</encoding>
   </configuration>
</build>

build.gradle

tasks.withType(‘JavaCompile’).configurationEach {
options.encoding=’UTF-8’
}

Or

tasks.withType(JavaCompile).configureEach { options.encoding = System.getProperty("project.build.sourceEncoding", "UTF-8") }

Pom file
Simple Declare of dependencies

<properties>
<covid19.version>2.23.3</covid19.versio>
<log4j.version>1.2.18</ log4j.version>
</properties>
….
…..
<dependecncy>
<groupId>com.kcm.covid19</groupId>
<artificateId>covid19</artificateId>
<version>${covid19.version}</version>
</dependecncy>
<dependecncy>
<groupId>org.apache.logging.log4j</groupId>
<artificateId>log4j-api</artificateId>
<version>${log4j.version}</version>
</dependecncy>

build.gradle

dependencies { implementation(‘com.kcm.covid19:covid19: 2.23.3’)
implementation(‘org.apache.logging.log4j: log4j-api: 1.2.18’)

 }

Read gradle.properties file

<properties>
<covid19.version>2.23.3</covid19.versio>
<log4j.version>1.2.18</ log4j.version>
</properties>
….
…..
<dependecncy>
<groupId>com.kcm.covid19</groupId>
<artificateId>covid19</artificateId>
<version>${covid19.version}</version>
</dependecncy>
<dependecncy>
<groupId>org.apache.logging.log4j</groupId>
<artificateId>log4j-api</artificateId>
<version>${log4j.version}</version>
</dependecncy>

gradle.properties
covid19.version=2.23.3
log4j.version=1.2.18



build.gradle
dependencies { implementation(“com.kcm.covid19:covid19:${project.findProperty(‘covid19.version’)}”)
implementation(“org.apache.logging.log4j: log4j-api:${project.findProperty(‘log4j.version’)}”)

 }

Single exclusion

<dependecncy>
<groupId>com.kcm.covid19</groupId>
<artificateId>covid19</artificateId>
<version>2.23.3</version>
  <exclusions>
    <exclusion>
       <groupId>log4j</groupId>
     <artificateId> log4j</artificateId>
    <exclusion>
</exclusions>
</dependecncy>

build.gradle

dependencies {
  implementation('com.kcm.covid19:covid19:2.23.3') {         
    exclude group: 'log4j', module: 'log4j'
    }
 }

Multiple exclusion

<dependecncy>
<groupId>com.kcm.covid19</groupId>
 <artificateId>covid19</artificateId>
 <version>2.23.3</version>
  <exclusions>
    <exclusion>
       <groupId>log4j</groupId >
     <artificateId> log4j</artificateId>
    <exclusion>
    <exclusion>
       <groupId> org.springframework</groupId >
     <artificateId>spring-jdbc </artificateId>
    <exclusion>
   </exclusions>
</dependecncy>

build.gradle

dependencies {
 implementation('com.kcm.covid19:covid19:2.23.3') {    
exclude group: 'log4j', module: 'log4j'
exclude group: 'org.springframework', module: 'spring-jdbc'
}
 }

Zip type

<dependecncy>
<groupId>com.kcm.covid19</groupId>
<artificateId>covid19</artificateId>
<version>2.23.3</version>
<type>zip</type>
</dependecncy>

build.gradle

dependencies {
   implementation('com.kcm.covid19:covid19:2.23.3@zip')
}

Jar type with classifier

<dependecncy>
 <groupId>com.kcm.covid19</groupId>
 <artificateId>covid19</artificateId>
 <version>2.23.3</version>
 <type>jar</type>
 <classifier>uCovid19-jar</classifier> 
</dependecncy>

build.gradle

dependencies {
   implementation('com.kcm.covid19:covid19:2.23.3:uCovid19-jar@jar')
}

Type with classifier

<dependecncy>
  <groupId>com.kcm.covid19</groupId>
  <artificateId>covid19</artificateId>
  <version>2.23.3</version>
  <classifier>uCovid19</classifier>
  <type>zip</type>
</dependecncy>

build.gradle

dependencies {
implementation('com.kcm.covid19:covid19:2.23.3:uCovid19@zip')
}

 

 

 

 

 

 

 

 

 



Maven to Gradle convert

<build>

                  <plugins>

                                    <plugin>

                                                      <groupId>org.apache.maven.plugins

                                                      </groupId>

                                                      <artificateId>maven-depnedency-plugin</artificateId>

                                                      <version>2.2</version>

                                                      <executions>

                                                                        <execution>

                                                                                          <id>unpack-COVID19-rh7</id>

                                                                                          <phase>prepare-package</phase>

                                                                                          <goals>

                                                                                                            <goal>unpack-dependencies</goal>

                                                                                          </goals>

                                                                                          <configuration>

                                                                                                            <groupId>com.kcm.quotation</groupId>

                                                                                                            <artificateId>Covid19_rh7_64_release-gcc11.2.1</artificateId>

                                                                                                            <version>222.22.2</version>

                                                                                                            <includeGroupIds>com.kcm.quotation</includeGroupIds>

                                                                                                            <includeArtificateIds>Covid19_rh7_64_release-gcc11.2.1</includeArtificateIds>

                                                                                                            <includeVersion>222.22.2</includeVersion>

                                                                                                            <includes>**</includes>

                                                                                                            <outputDiretcory>${project.build.diretcory}/lib_COVID19/linux</outputDiretcory>

                                                                                          </configuration>

                                                                        </execution>

                                                                        <execution>

                                                                                          <id>unpack-COVID19-win64</id>

                                                                                          <phase>prepare-package</phase>

                                                                                          <goals>

                                                                                                            <goal>unpack-dependencies</goal>

                                                                                          </goals>

                                                                                          <configuration>

                                                                                                            <groupId>com.kcm.quotation</groupId>

                                                                                                            <artificateId>Covid19_rh7_64_release-gcc11.2.1</artificateId>

                                                                                                            <version>222.22.2</version>

                                                                                                            <includeGroupIds>com.kcm.quotation</includeGroupIds>

                                                                                                            <includeArtificateIds>Covid19_win_x64_release-vs222</includeArtificateIds>

                                                                                                            <includeVersion>222.22.2</includeVersion>

                                                                                                            <includes>**</includes>

                                                                                                            <outputDiretcory>${project.build.diretcory}/lib_COVID19/windows</outputDiretcory>

                                                                                          </configuration>

                                                                        </execution>

                                                                        <execution>

                                                                                          <id>copy-dependencies</id>

                                                                                          <phase>prepare-package</phase>

                                                                                          <goals>

                                                                                                            <goal>copy-dependencies</goal>

                                                                                          </goals>

                                                                                          <configuration>

                                                                                                            <outputDiretcory>${project.build.diretcory}/lib</outputDiretcory>

                                                                                                            <includeTypes>jar</includeTypes>

                                                                                          </configuration>

                                                                        </execution>

                                                      </executions>

                                    </plugin>

                                    <plugin>

                                                      <groupId>org.apache.maven.plugins

                                                      </groupId>

                                                      <artificateId>maven-antrun-plugin</artificateId>

                                                      <version>1.7</version>

                                                      <executions>

                                                                        <execution>

                                                                                          <id>copy-COVID19</id>

                                                                                          <phase>prepare-package</phase>

                                                                                          <goals>

                                                                                                            <goal>run</goal>

                                                                                          </goals>

                                                                                          <configuration>

                                                                                                            <target name="copy Covid19 libary">

                                                                                                                              <copy todir="${project.build.diretcory}/extlib/windows">

                                                                                                                                                <fileset dir="${project.build.diretcory}/lib_COVID19">

                                                                                                                                                                  <inlcude name="**/*.dll*"/>

                                                                                                                                                                  <inlcude name="**/*.DLL*"/>

                                                                                                                                                </fileset>

                                                                                                                                                <mapper type="flatten"/>

                                                                                                                              </copy>

                                                                                                                              <copy todir="${project.build.diretcory}/extlib/linux">

                                                                                                                                                <fileset dir="${project.build.diretcory}/lib_COVID19">

                                                                                                                                                                  <inlcude name="**/*.so*"/>

                                                                                                                                                </fileset>

                                                                                                                                                <mapper type="flatten"/>

                                                                                                                              </copy>

                                                                                                            </target>

                                                                                          </configuration>

                                                                        </execution>

                                                      </executions>

                                                      </plugin>

                                                      <plugin>

                                                                        <groupId>org.apache.maven.plugins</groupId>

                                                                        <artificateId>maven-assembly-plugin</artificateId>

                                                                        <version>3.7.1</version>

                                                                        <executions>

                                                                                          <execution>

                                                                                                            <id>KcmInterface</id>

                                                                                                            <phase>package</phase>

                                                                                                            <goals>

                                                                                                                              <goal>single</goal>

                                                                                                            </goals>

                                                                                                            <configuration>

                                                                                                                              <outputDiretcory>${project.build.diretcory}/assemblies</outputDiretcory>

                                                                                                                              <appendAssemblyId>false</appendAssemblyId>

                                                                                                                              <descriptors>

                                                                                                                                                <descriptor> ${project.basedir}KcmInterface.xml</descriptor>

                                                                                                                              </descriptors>

                                                                                                                              <fileName>KcmInterface</fileName>

                                                                                                            </configuration>

                                                                                          </execution>

                                                                        </executions>

                                                                        </plugin>

                                                      </build>

Gradle Convert for inside maven build with so many plugin, execution goals and configuration

tasks.register(“unpackCOVID19Rh7”, Copy) {

    from configurations.runtimeClasspath

    into "${project.build.directory}/lib_COVID19/linux"

    include '**'

}

 

tasks.register(“unpackCOVID19Win64”, Copy)  {

    from configurations.runtimeClasspath

    into "${ project.build.directory}/lib_COVID19/windows"

    include '**'

}

 

tasks.register(“copyDependencies”, Copy) {

    from configurations.runtimeClasspath

    into "${project.build.directory}/lib"

    include '**/*.jar'

}

 

tasks.register(“copyCOVID19Library”, Copy) {

    from("${buildDir}/lib_COVID19") {

        include '**/*.dll*', '**/*.DLL*'

    }

    into "${project.build.directory}/extlib/windows"

    eachFile { fileCopyDetails -> fileCopyDetails.path = fileCopyDetails.name }

    includeEmptyDirs = false

}

 

tasks.register(“copyCOVID19LibraryLinux”, Copy) {

    from("${project.build.directory}/lib_COVID19") {

        include '**/*.so*'

    }

    into "${project.build.directory}/extlib/linux"

    eachFile { fileCopyDetails -> fileCopyDetails.path = fileCopyDetails.name }

    includeEmptyDirs = false

}

 

tasks.register(“createAssembly”, Zip) {

    from("${project.build.directory}/KcmInterface.xml")

    into "${project.build.directory}/assemblies"

    archiveFileName = "KcmInterface.zip"

}

 

 


Maven pom.xml file

<build>

              <plugins>

                             <plugin>

                                           <artificateId>maven-compiler-plugin</artificateId>

                                           <version>3.10.1</version>

                                           <configuration>

                                                          <source>${jdk.version}</source>

                                                          <target>${jdk.version}</target>

                                                          <encoding>${project.build.sourceEncoding}</encoding>

                                           </configuration>

                             </plugin>

                             <plugin>

                                           <groupId>org.apache.maven.plugins</groupId>

                                           <artificateId>maven-jar-plugin</artificateId>

                                           <version>3.3.0</version>

                                           <configuration>

                                                          <archive>

                                                                        <manifest>

                                                                                      <mainClass>com.kcm.kamical-management</mainClass>

                                                                        </manifest>

                                                          </archive>

                                           </configuration>

                             </plugin>

                             <plugin>

                                           <groupId>org.apache.maven.plugins</groupId>

                                           <artificateId>maven-depnedency-plugin</artificateId>

                                           <version>2.2</version>

                                           <executions>

                                                          <execution>

                                                                        <id>unpack-COVID19-rh7</id>

                                                                        <phase>prepare-package</phase>

                                                                        <goals>

                                                                                      <goal>unpack-dependencies</goal>

                                                                        </goals>

                                                                        <configuration>

                                                                                      <groupId>com.kcm.quotation</groupId>

                                                                                      <artificateId>Covid19_rh7_64_release-gcc11.2.1</artificateId>

                                                                                      <version>222.22.2</version>

                                                                                      <includeGroupIds>com.kcm.quotation</includeGroupIds>

                                                                                      <includeArtificateIds>Covid19_rh7_64_release-gcc11.2.1</includeArtificateIds>

                                                                                      <includeVersion>222.22.2</includeVersion>

                                                                                      <includes>**</includes>

                                                                                      <outputDiretcory>${project.build.diretcory}/lib_COVID19/linux</outputDiretcory>

                                                                        </configuration>

                                                          </execution>

                                                          <execution>

                                                                        <id>unpack-COVID19-win64</id>

                                                                        <phase>prepare-package</phase>

                                                                        <goals>

                                                                                      <goal>unpack-dependencies</goal>

                                                                        </goals>

                                                                        <configuration>

                                                                                      <groupId>com.kcm.quotation</groupId>

                                                                                      <artificateId>Covid19_rh7_64_release-gcc11.2.1</artificateId>

                                                                                      <version>222.22.2</version>

                                                                                      <includeGroupIds>com.kcm.quotation</includeGroupIds>

                                                                                      <includeArtificateIds>Covid19_win_x64_release-vs222</includeArtificateIds>

                                                                                      <includeVersion>222.22.2</includeVersion>

                                                                                      <includes>**</includes>

                                                                                      <outputDiretcory>${project.build.diretcory}/lib_COVID19/windows</outputDiretcory>

                                                                        </configuration>

                                                          </execution>

                                                          <execution>

                                                                        <id>copy-dependencies</id>

                                                                        <phase>prepare-package</phase>

                                                                        <goals>

                                                                                      <goal>copy-dependencies</goal>

                                                                        </goals>

                                                                        <configuration>

                                                                                      <outputDiretcory>${project.build.diretcory}/lib</outputDiretcory>

                                                                                      <includeTypes>jar</includeTypes>

                                                                        </configuration>

                                                          </execution>

                                           </executions>

                             </plugin>

                             <plugin>

                                           <groupId>org.apache.maven.plugins

                                           </groupId>

                                           <artificateId>maven-antrun-plugin</artificateId>

                                           <version>1.7</version>

                                           <executions>

                                                          <execution>

                                                                        <id>copy-COVID19</id>

                                                                        <phase>prepare-package</phase>

                                                                        <goals>

                                                                                      <goal>run</goal>

                                                                        </goals>

                                                                        <configuration>

                                                                                      <target name="copy Covid19 libary">

                                                                                                     <copy todir="${project.build.diretcory}/extlib/windows">

                                                                                                                   <fileset dir="${project.build.diretcory}/lib_COVID19">

                                                                                                                                  <inlcude name="**/*.dll*"/>

                                                                                                                                  <inlcude name="**/*.DLL*"/>

                                                                                                                   </fileset>

                                                                                                                   <mapper type="flatten"/>

                                                                                                     </copy>

                                                                                                     <copy todir="${project.build.diretcory}/extlib/linux">

                                                                                                                   <fileset dir="${project.build.diretcory}/lib_COVID19">

                                                                                                                                  <inlcude name="**/*.so*"/>

                                                                                                                   </fileset>

                                                                                                                   <mapper type="flatten"/>

                                                                                                     </copy>

                                                                                      </target>

                                                                        </configuration>

                                                          </execution>

                                           </executions>

                             </plugin>

                             <plugin>

                                           <groupId>org.apache.maven.plugins</groupId>

                                           <artificateId>maven-assembly-plugin</artificateId>

                                           <version>3.7.1</version>

                                           <executions>

                                                          <execution>

                                                                        <id>KcmInterface</id>

                                                                        <phase>package</phase>

                                                                        <goals>

                                                                                      <goal>single</goal>

                                                                        </goals>

                                                                        <configuration>

                                                                                      <outputDiretcory>${project.build.diretcory}/assemblies</outputDiretcory>

                                                                                      <appendAssemblyId>false</appendAssemblyId>

                                                                                      <descriptors>

                                                                                                     <descriptor> ${project.basedir}KcmInterface.xml</descriptor>

                                                                                      </descriptors>

                                                                                      <fileName>KcmInterface</fileName>

                                                                        </configuration>

                                                          </execution>

                                           </executions>

                             </plugin>

                             <plugin>

                                           <groupId>org.apache.maven.plugins</groupId>

                                           <artificateId>maven-surefire-plugin</artificateId>

                                           <version>2.22.2</version>

                                           <executions>

                                                          <configuration>

                                                                        <outputDiretcory>${project.build.diretcory}/test</outputDiretcory>

                                                                        <appendAssemblyId>false</appendAssemblyId>

                                                                        <fileName>KcmInterface-Test</fileName>

                                                          </configuration>

                                           </executions>

                             </plugin>

                             <plugin>

                                           <groupId>org.jacoco</groupId>

                                           <artificateId>jacoco-maven-plugin</artificateId>

                                           <version>0.8.8</version>

                                           <configuration>

                                                          <destFile>${basedir}/target/coverage-reports/jacoco-units.exec</destFile>

                                                          <detaFile>${basedir}/target/coverage-reports/jacoco-units.exec</detaFile>

                                           </configuration>

                                           <executions>

                                                          <execution>

                                                                        <id>jacoco-initialize</id>

                                                                        <goals>

                                                                                      <goal>prepare-agent</goal>

                                                                        </goals>

                                                          </execution>

                                                          <execution>

                                                                        <id>jacoco-site</id>

                                                                        <phase>package</phase>

                                                                        <goals>

                                                                                      <goal>report</goal>

                                                                        </goals>

                                                          </execution>

                                           </executions>

                             </plugin>

              </build>

 

Gradle similar to above pom

plugins {

    id 'java'

    id 'maven-publish'

    id 'jacoco'

    id 'application'

}

 

java {

    toolchain {

        languageVersion.set(JavaLanguageVersion.of(System.getProperty("jdk.version").toInteger()))

    }

}

 

application {

    mainClass = 'com.kcm.kamical-management'

}

 

tasks.withType(JavaCompile).configureEach {

    options.encoding = System.getProperty("project.build.sourceEncoding", "UTF-8")

}

 

dependencies {

    implementation 'com.kcm.quotation:Covid19_rh7_64_release-gcc11.2.1:222.22.2@zip'

    implementation 'com.kcm.quotation:Covid19_win_x64_release-vs222:222.22.2@zip'

}

 

tasks.register("copyDependencies", Copy) {

    from configurations.runtimeClasspath

    into "$buildDir/lib"

    include '*.jar'

}

 

tasks.register("unpackCovid19Rh7", Copy) {

    from zipTree(configurations.runtimeClasspath.find { it.name.contains('Covid19_rh7_64_release-gcc11.2.1') })

    into "$buildDir/lib_COVID19/linux"

}

 

tasks.register("unpackCovid19Win64", Copy) {

    from zipTree(configurations.runtimeClasspath.find { it.name.contains('Covid19_win_x64_release-vs222') })

    into "$buildDir/lib_COVID19/windows"

}

 

tasks.register("copyCovid19Library", Copy) {

    into "$buildDir/extlib/windows"

    from "$buildDir/lib_COVID19"

    include '**/*.dll', '**/*.DLL'

    eachFile { details ->

        details.path = details.name

    }

}

 

tasks.register("copyCovid19LibraryLinux", Copy) {

    into "$buildDir/extlib/linux"

    from "$buildDir/lib_COVID19"

    include '**/*.so'

    eachFile { details ->

        details.path = details.name

    }

}

 

jacoco {

    toolVersion = "0.8.8"

}

 

tasks.register("jacocoReport", JacocoReport) {

    dependsOn test

    reports {

        xml.required.set(true)

        csv.required.set(false)

        html.required.set(true)

    }

    executionData file("$buildDir/jacoco/test.exec")

    sourceSets sourceSets.main

}

 

tasks.withType(Test).configureEach {

    finalizedBy tasks.jacocoReport

}

 

jar {

    manifest {

        attributes 'Main-Class': 'com.kcm.kamical-management'

    }

}

 

tasks.register("createAssembly", Zip) {

    archiveFileName.set("KcmInterface.zip")

    destinationDirectory.set(file("$buildDir/assemblies"))

    from("$rootDir/KcmInterface.xml")

}

 

tasks.register("surefireTest", Test) {

    reports.html.destination = file("$buildDir/test")

}


For Tools information, visit:

Ø  Auto-Update Batch File with Latest JAR & Start App Automatically

Ø  Connecting to IBM WebSphere MQ in Java

Ø  How to create maven project

Ø  VisualVM monitoring like jconsole

Ø  Stylus studio convert edifact message

Ø  JConsole Monitoring for Java Standalone or Web application project

Ø  Apache Cluster router load balancer

Ø  Generate a Token in Sonatype Nexus & Use It in Maven & Jenkins

Ø  CI/CD Pipeline in Jenkins: Staging & Production Artifact Flow in java app

Ø  Master in CI/CD pipeline using Maven with java

 

For Design information, visit:

Ø  Design pattern

Ø  Mastering Design Patterns Practical Implementation Tips

Ø  How to draw sequence diagram and other diagrams using plantuml

Ø  Time Analysis for Congested Routes Using Shortest Path Algorithms

Ø  Java Design Pattern

Ø  Passive Infrared (PIR) sensors understand and implementation by java


For Math information, visit:

Ø  Calculating the area of a triangle

Ø  The method for calculating the area of a rectangle in Java

ؠ The value of π = 3.14159 in java [Click Here]


 

Maven settings.xml & pom.xml to Gradle build.gradle
Maven settings.xml & pom.xml to Gradle build.gradle





Post a Comment

0 Comments