e.maven.plugins.toolbox.0.3.0.source-code.pom.xml Maven / Gradle / Ivy
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright (c) 2023-2024 Maveniverse Org. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>eu.maveniverse.maven.toolbox</groupId> <artifactId>toolbox</artifactId> <version>0.3.0</version> </parent> <groupId>eu.maveniverse.maven.plugins</groupId> <artifactId>toolbox</artifactId> <packaging>maven-plugin</packaging> <name>${project.groupId}:${project.artifactId}</name> <prerequisites> <maven>${prerequisiteMaven}</maven> </prerequisites> <properties> <mainClass>eu.maveniverse.maven.toolbox.plugin.CLI</mainClass> <!-- m-p-p workarounds --> <prerequisiteMaven>${requireRuntimeMavenVersion.version}</prerequisiteMaven> <prerequisiteJava>${maven.compiler.release}</prerequisiteJava> </properties> <dependencies> <!-- CLI --> <dependency> <groupId>info.picocli</groupId> <artifactId>picocli</artifactId> </dependency> <dependency> <groupId>info.picocli</groupId> <artifactId>picocli-shell-jline3</artifactId> </dependency> <dependency> <groupId>org.jline</groupId> <artifactId>jline</artifactId> </dependency> <!-- Toolbox --> <dependency> <groupId>eu.maveniverse.maven.toolbox</groupId> <artifactId>shared</artifactId> </dependency> <!-- MIMA + Logging --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <dependency> <groupId>eu.maveniverse.maven.mima</groupId> <artifactId>context</artifactId> </dependency> <!-- MIMA runtime --> <dependency> <groupId>eu.maveniverse.maven.mima.runtime</groupId> <artifactId>embedded-maven</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <scope>runtime</scope> </dependency> <!-- Maven (provided by runtime) --> <dependency> <groupId>org.apache.maven.plugin-tools</groupId> <artifactId>maven-plugin-annotations</artifactId> <version>${version.mavenPluginTools}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-artifact</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-core</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-model</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-model-builder</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-builder-support</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-settings</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-repository-metadata</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> <scope>provided</scope> </dependency> <!-- Resolver (provided by runtime) --> <dependency> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver-util</artifactId> <scope>compile</scope> </dependency> <!-- Search --> <dependency> <groupId>org.apache.maven.indexer</groupId> <artifactId>search-api</artifactId> </dependency> <dependency> <groupId>org.apache.maven.indexer</groupId> <artifactId>search-backend-remoterepository</artifactId> </dependency> <dependency> <groupId>org.apache.maven.indexer</groupId> <artifactId>search-backend-smo</artifactId> </dependency> <!-- Test --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-plugin-plugin</artifactId> <configuration> <goalPrefix>toolbox</goalPrefix> <requiredMavenVersion>${prerequisiteMaven}</requiredMavenVersion> <requiredJavaVersion>${prerequisiteJava}</requiredJavaVersion> </configuration> <executions> <execution> <id>generated-helpmojo</id> <goals> <goal>helpmojo</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <executions> <execution> <id>default-proc</id> <goals> <goal>compile</goal> </goals> <phase>generate-sources</phase> <configuration> <annotationProcessorPaths> <path> <groupId>info.picocli</groupId> <artifactId>picocli-codegen</artifactId> <version>${version.picocli}</version> </path> </annotationProcessorPaths> <compilerArgs> <arg>-Aproject=${project.groupId}/${project.artifactId}</arg> </compilerArgs> <proc>only</proc> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <executions> <execution> <id>cli</id> <goals> <goal>shade</goal> </goals> <phase>package</phase> <configuration> <createDependencyReducedPom>false</createDependencyReducedPom> <shadedArtifactAttached>true</shadedArtifactAttached> <shadedClassifierName>cli</shadedClassifierName> <extraArtifacts> <extraArtifact>org.slf4j:slf4j-simple:${version.slf4j}</extraArtifact> <extraArtifact>eu.maveniverse.maven.mima.runtime:standalone-static-uber:${version.mima}</extraArtifact> <extraArtifact>org.apache.maven:maven-plugin-api:${version.maven}</extraArtifact> </extraArtifacts> <artifactSet> <!-- These are already provided by runtime --> <excludes> <exclude>eu.maveniverse.maven.mima.runtime:embedded-maven</exclude> <exclude>org.apache.maven.resolver:maven-resolver-util</exclude> <exclude>commons-codec:commons-codec</exclude> <exclude>org.apache.commons:commons-lang3</exclude> </excludes> </artifactSet> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> <transformer implementation="org.apache.maven.plugins.shade.resource.SisuIndexResourceTransformer" /> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>${mainClass}</Main-Class> <Specification-Title>${project.artifactId}</Specification-Title> <Specification-Version>${project.version}</Specification-Version> <Implementation-Title>${project.artifactId}</Implementation-Title> <Implementation-Version>${project.version}</Implementation-Version> <Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id> </manifestEntries> </transformer> </transformers> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/MANIFEST.MF</exclude> <exclude>META-INF/LICENSE</exclude> <exclude>META-INF/LICENSE.txt</exclude> <exclude>META-INF/DEPENDENCIES</exclude> <exclude>META-INF/NOTICE</exclude> <exclude>META-INF/NOTICE.txt</exclude> <exclude>**/module-info.class</exclude> </excludes> </filter> </filters> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>