DevShivmohan / Learning-everything

Learning for developer only
0 stars 1 forks source link

Creating maven project jar using packages [Hint for add separate file] via command line #21

Open DevShivmohan opened 1 year ago

DevShivmohan commented 1 year ago

Creating jar file using mvn command line changes in pom.xml

<build>
<plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>Spectrum_Backend_lib/</classpathPrefix>
                            <!-- here we specify that we want to use the main method within the App class -->
                            <mainClass>org.lattice.spectrum_backend_final.Main</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-maven-plugin</artifactId>
                <version>4.0.3</version>
            </plugin>

        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.class</include>
                    <include>**/*.properties</include>
                    <include>**/commit</include>
                </includes>
            </resource>
        </resources>
    </build>

with external library in separate directory - plugin

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/Spectrum_Backend_lib</outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>false</overWriteSnapshots>
                            <overWriteIfNewer>true</overWriteIfNewer>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

Command

Type mvn clean compile package