Spring Boot build with Buildpacks - spring-boot

I have this a Spring Boot application with the following configurations
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
<image>
<builder>paketobuildpacks/builder:tiny</builder>
<name>test.com/microservice/${project.artifactId}:${project.version}</name>
<pullPolicy>IF_NOT_PRESENT</pullPolicy>
<publish>true</publish>
<env>
<BP_NATIVE_IMAGE>false</BP_NATIVE_IMAGE>
<BPL_DEBUG_ENABLED>false</BPL_DEBUG_ENABLED>
<!--<JAVA_TOOL_OPTIONS></JAVA_TOOL_OPTIONS>-->
</env>
</image>
<docker>
<publishRegistry>
<username>test</username>
<password>test</password>
<url>https://test.com</url>
</publishRegistry>
</docker>
</configuration>
</plugin>
</plugins>
</build>
And .gitlab-cy.yml
image: test.com/docker:18.06
services:
- name: test.com/docker:dind
variables:
DOCKER_DRIVER: overlay
MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
maven-build:
image: test.com/maven:3.6.3-openjdk-17-slim
stage: build
tags:
- shared-runner
only:
- staging
- master
script:
- mvn -DAPP_VERSION=${CI_COMMIT_SHA:0:8} $MAVEN_CLI_OPTS clean spring-boot:build-image -DskipTests
Always when job is run
paketobuilder download BellSoft Liberica JRE 17.0.4
logs
5221 [INFO] [creator] $JAVA_TOOL_OPTIONS the JVM launch flags
5222 [INFO] [creator] Using Java version 17.* from BP_JVM_VERSION
5222 [INFO] [creator] BellSoft Liberica JRE 17.0.4: Contributing to layer
5222 [INFO] [creator] Downloading from https://github.com/bell-sw/Liberica/releases/download/17.0.4+8/bellsoft-jre17.0.4+8-linux-amd64.tar.gz
111299 [INFO] [creator] Verifying checksum
111455 [INFO] [creator] Expanding to /layers/paketo-buildpacks_bellsoft-liberica/jre
How Can I cache these downloads in gitlab runner?

Related

Spring Boot Build Native Error during Compilation

Error Logs and Explannation
Hello
I´ve installed boot native support and I am receiving an error.
This post is more to support and give information for the technical team to improve this beta version.
The project compiles without problem if we run "normally"
Command : mvn -Pnative spring-boot:build-image
POM
<project>
<parent>
<groupId>parent</groupId>
<artifactId>pom</artifactId>
<version>1.0</version>
<relativePath>/envconfigfiles/pom.xml</relativePath>
</parent>
<groupId>spring</groupId>
<artifactId>configuration.server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>configuration.server</name>
<description>Spring Configuration Server</description>
<dependencies>
<!-- Spring Config Server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!-- Tests -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
</build>
</project>
Parent POM
<groupId>parent</groupId>
<artifactId>pom</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<description>Environment Parent POM</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.2</version>
<relativePath/>
</parent>
<properties>
<apache.commons.lang3>3.8.1</apache.commons.lang3>
<apache.httpcomponents>4.3.4</apache.httpcomponents>
<hibernate.types.52>2.9.3</hibernate.types.52>
<io.springfox.swagger2>2.9.2</io.springfox.swagger2>
<io.springfox.swagger.ui>2.9.2</io.springfox.swagger.ui>
<io.swagger.annotations>1.5.20</io.swagger.annotations>
<io.swagger.bean.validators>2.9.2</io.swagger.bean.validators>
<java.version>11</java.version>
<jaxb-api>2.3.0</jaxb-api>
<jaxb-impl>2.3.0</jaxb-impl>
<jaxb-runtime>2.3.0</jaxb-runtime>
<javax.activation>1.1.1</javax.activation>
<junit.vintage.engine.version>5.3.2</junit.vintage.engine.version>
<maven.checkstyle.version>3.0.0</maven.checkstyle.version>
<maven.compiler.plugin>3.8.1</maven.compiler.plugin>
<maven.jacoco.plugin>0.8.2</maven.jacoco.plugin>
<maven.failsafe.plugin>2.22.2</maven.failsafe.plugin>
<maven.surefire.plugin>2.22.2</maven.surefire.plugin>
<mockito.core>3.11.0</mockito.core>
<postgresql>42.2.23</postgresql>
<projectlombok>1.18.20</projectlombok>
<puppycrawl.checkstyle.version>8.19</puppycrawl.checkstyle.version>
<spring-boot-admin.version>2.3.1</spring-boot-admin.version>
<spring-boot-admin-server-ui-login>1.5.7</spring-boot-admin-server-ui-login>
<spring-boot-admin-starter-client>2.4.1</spring-boot-admin-starter-client>
<spring-boot-starter-security>2.4.0</spring-boot-starter-security>
<spring-boot-spring-native>0.10.0</spring-boot-spring-native>
<spring-cloud.version>2020.0.3</spring-cloud.version>
<spring-cloud-starter-zipkin>2.2.8.RELEASE</spring-cloud-starter-zipkin>
<spring-native.version>0.10.1</spring-native.version>
</properties>
<!-- MVN PROFILES -->
<profiles>
<profile>
<id>native</id>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>${repackage.classifier}</classifier>
<image>
<builder>paketobuildpacks/builder:tiny</builder>
<env>
<BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>
</env>
</image>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.experimental</groupId>
<artifactId>spring-aot-maven-plugin</artifactId>
<version>${spring-native.version}</version>
<executions>
<execution>
<id>test-generate</id>
<goals>
<goal>test-generate</goal>
</goals>
</execution>
<execution>
<id>generate</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- Spring Admin Client -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>${spring-boot-admin-starter-client}</version>
</dependency>
<!-- Spring Cloud Client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
<!-- Spring Native AOT Client -->
<dependency>
<groupId>org.springframework.experimental</groupId>
<artifactId>spring-native</artifactId>
<version>${spring-boot-spring-native}</version>
</dependency>
<dependency>
<groupId>org.springframework.experimental</groupId>
<artifactId>spring-aot</artifactId>
<version>${spring-boot-spring-native}</version>
</dependency>
<!-- Spring Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${io.springfox.swagger.ui}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-bean-validators</artifactId>
<version>${io.swagger.bean.validators}</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>${io.swagger.annotations}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${io.springfox.swagger2}</version>
</dependency>
<!-- DB -->
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgresql}</version>
</dependency>
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-52</artifactId>
<version>${hibernate.types.52}</version>
</dependency>
<!-- Apache Libs -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${apache.commons.lang3}</version>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${projectlombok}</version>
</dependency>
<!--XML Additional -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jaxb-api}</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>${jaxb-impl}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>${jaxb-runtime}</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>${javax.activation}</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-dependencies</artifactId>
<version>${spring-boot-admin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<!--CheckStyle -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven.checkstyle.version}</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${puppycrawl.checkstyle.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<configuration>
<excludes>
</excludes>
<configLocation>checkstyle.xml</configLocation>
<consoleOutput>true</consoleOutput>
<logViolationsToConsole>false</logViolationsToConsole>
<encoding>UTF-8</encoding>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<!--Compiler With Lombok -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${projectlombok}</version>
</path>
</annotationProcessorPaths>
<useIncrementalCompilation>false</useIncrementalCompilation> <!-- https://issues.apache.org/jira/browse/MCOMPILER-209 -->
</configuration>
</plugin>
<!--Jacoco Test Report -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${maven.jacoco.plugin}</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- SureFire - Run Unit Tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.plugin}</version>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-jupiter.version}</version>
</dependency>
</dependencies>
<configuration>
<forkedProcessExitTimeoutInSeconds>240</forkedProcessExitTimeoutInSeconds>
<includes>
<include>**/*.class</include>
</includes>
<excludes>
<exclude>**/*_FT.java</exclude>
</excludes>
<useSystemClassLoader>false</useSystemClassLoader>
</configuration>
</plugin>
<!-- Run Functional Tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven.failsafe.plugin}</version>
<executions>
<execution>
<id>api-tests</id>
<phase>none</phase>
<configuration>
<testSourceDirectory>src/test/java/functionaltests</testSourceDirectory>
<includes>
<include>**/*FT*</include>
</includes>
</configuration>
</execution>
</executions>
<configuration>
<forkedProcessExitTimeoutInSeconds>240</forkedProcessExitTimeoutInSeconds>
<useSystemClassLoader>false</useSystemClassLoader>
<trimStackTrace>false</trimStackTrace>
</configuration>
</plugin>
<!-- Spring Boot -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludeDevtools>false</excludeDevtools>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-release</id>
<name>Spring release</name>
<url>https://repo.spring.io/release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-release</id>
<name>Spring release</name>
<url>https://repo.spring.io/release</url>
</pluginRepository>
</pluginRepositories>
</project>
Error Log
14270573607ffcd469159237568469f010e2f97bd74f674f79c38364f'
[INFO] > Executing lifecycle version v0.11.3
[INFO] > Using build cache volume 'pack-cache-a930304ae2dd.build'
[INFO]
[INFO] > Running creator
[INFO] [creator] ===> DETECTING
[INFO] [creator] 5 of 12 buildpacks participating
[INFO] [creator] paketo-buildpacks/ca-certificates 2.3.2
[INFO] [creator] paketo-buildpacks/graalvm 6.2.2
[INFO] [creator] paketo-buildpacks/executable-jar 5.1.2
[INFO] [creator] paketo-buildpacks/spring-boot 4.4.2
[INFO] [creator] paketo-buildpacks/native-image 4.1.2
[INFO] [creator] ===> ANALYZING
[INFO] [creator] Previous image with name "docker.io/library/configuration.server:0.0.1-SNAPSHOT" not found
[INFO] [creator] ===> RESTORING
[INFO] [creator] ===> BUILDING
[INFO] [creator]
[INFO] [creator] Paketo CA Certificates Buildpack 2.3.2
[INFO] [creator] https://github.com/paketo-buildpacks/ca-certificates
[INFO] [creator] Launch Helper: Contributing to layer
[INFO] [creator] Creating /layers/paketo-buildpacks_ca-certificates/helper/exec.d/ca-certificates-helper
[INFO] [creator]
[INFO] [creator] Paketo GraalVM Buildpack 6.2.2
[INFO] [creator] https://github.com/paketo-buildpacks/graalvm
[INFO] [creator] Build Configuration:
[INFO] [creator] $BP_JVM_VERSION 11.* the Java version
[INFO] [creator] Launch Configuration:
[INFO] [creator] $BPL_JVM_HEAD_ROOM 0 the headroom in memory calculation
[INFO] [creator] $BPL_JVM_LOADED_CLASS_COUNT 35% of classes the number of loaded classes in memory calculation
[INFO] [creator] $BPL_JVM_THREAD_COUNT 250 the number of threads in memory calculation
[INFO] [creator] $JAVA_TOOL_OPTIONS the JVM launch flags
[INFO] [creator] GraalVM JDK 11.0.11: Contributing to layer
[INFO] [creator] Downloading from https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-linux-amd64-21.1.0.tar.gz
[INFO] [creator] Verifying checksum
[INFO] [creator] Expanding to /layers/paketo-buildpacks_graalvm/jdk
[INFO] [creator] Adding 129 container CA certificates to JVM truststore
[INFO] [creator] GraalVM Native Image Substrate VM 11.0.11
[INFO] [creator] Downloading from https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/native-image-installable-svm-java11-linux-amd64-21.1.0.jar
[INFO] [creator] Verifying checksum
[INFO] [creator] Installing substrate VM
[INFO] [creator] Processing Component archive: /tmp/1ab725616fede21ad5ae900d00ec6d45753db6f6f4fe51a836d538c79d79614a/native-image-installable-svm-java11-linux-amd64-21.1.0.jar
[INFO] [creator] Installing new component: Native Image (org.graalvm.native-image, version 21.1.0)
[INFO] [creator] Writing env.build/JAVA_HOME.override
[INFO] [creator] Writing env.build/JDK_HOME.override
[INFO] [creator]
[INFO] [creator] Paketo Executable JAR Buildpack 5.1.2
[INFO] [creator] https://github.com/paketo-buildpacks/executable-jar
[INFO] [creator] Class Path: Contributing to layer
[INFO] [creator] Writing env.build/CLASSPATH.delim
[INFO] [creator] Writing env.build/CLASSPATH.prepend
[INFO] [creator]
[INFO] [creator] Paketo Spring Boot Buildpack 4.4.2
[INFO] [creator] https://github.com/paketo-buildpacks/spring-boot
[INFO] [creator] Class Path: Contributing to layer
[INFO] [creator] Writing env.build/CLASSPATH.append
[INFO] [creator] Writing env.build/CLASSPATH.delim
[INFO] [creator] Image labels:
[INFO] [creator] org.opencontainers.image.title
[INFO] [creator] org.opencontainers.image.version
[INFO] [creator] org.springframework.boot.version
[INFO] [creator]
[INFO] [creator] Paketo Native Image Buildpack 4.1.2
[INFO] [creator] https://github.com/paketo-buildpacks/native-image
[INFO] [creator] Build Configuration:
[INFO] [creator] $BP_NATIVE_IMAGE true enable native image build
[INFO] [creator] $BP_NATIVE_IMAGE_BUILD_ARGUMENTS arguments to pass to the native-image command
[INFO] [creator] Native Image: Contributing to layer
[INFO] [creator] GraalVM 21.1.0 Java 11 CE (Java Version 11.0.11+8-jvmci-21.1-b05)
[INFO] [creator] [/layers/paketo-buildpacks_native-image/native-image/spring.configuration.server.Application:169] (clinit): 2,872.18 ms, 2.60 GB
[INFO] [creator] [/layers/paketo-buildpacks_native-image/native-image/spring.configuration.server.Application:169] (typeflow): 115,047.19 ms, 2.60 GB
[INFO] [creator] [/layers/paketo-buildpacks_native-image/native-image/spring.configuration.server.Application:169] (objects): 274,851.84 ms, 2.60 GB
[INFO] [creator] [/layers/paketo-buildpacks_native-image/native-image/spring.configuration.server.Application:169] (features): 11,603.11 ms, 2.60 GB
[INFO] [creator] [/layers/paketo-buildpacks_native-image/native-image/spring.configuration.server.Application:169] analysis: 409,017.77 ms, 2.60 GB
[INFO] [creator] [/layers/paketo-buildpacks_native-image/native-image/spring.configuration.server.Application:169] universe: 5,672.85 ms, 2.60 GB
[INFO] [creator] Error: Image build request failed with exit status 137
[INFO] [creator] unable to invoke layer creator
[INFO] [creator] unable to contribute native-image layer
[INFO] [creator] error running build
[INFO] [creator] exit status 137
[INFO] [creator] ERROR: failed to build: exit status 1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 09:15 min
[INFO] Finished at: 2021-07-18T23:20:49+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.5.2:build-image (default-cli) on project configuration.server: Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:2.5.2:build-image failed: Builder lifecycle 'creator' failed with status code 145 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] `enter code here
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

Spring boot and maven build number plugin

I am using Spring boot 2.0.5,and added code to generate build number using maven build number plugin. The build number is generating fine. I can see on jar and in the builNumber.properties file but its not being substituted in finalName in version.txt file.
Additional details:
Here is my POM.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>buildNumber</id>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<format>{0,number}</format>
<items>
<item>buildNumber</item>
</items>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<revisionOnScmFailure>unknownbuild</revisionOnScmFailure>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<finalName>${project.artifactId}-${project.version}.${buildNumber}</finalName>
</build>
I have created version.txt file in resources folder and it has following text.
#project.build.finalName#
On maven clean install this file is updated in target folder. In below logs line # 2 you can see build number is added to jar file name.
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) # try ---
[INFO] Building jar: /home/ubuntu/Spring/SpringBootData-REST/target/try-0.0.1-SNAPSHOT.10.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:2.0.5.RELEASE:repackage (default) # try ---
[INFO]
[INFO] --- maven-install-plugin:2.5.2:install (default-install) # try ---
[INFO] Installing /home/ubuntu/Spring/SpringBootData-REST/target/try-0.0.1-SNAPSHOT.10.jar to /home/ubuntu/.m2/repository/com/try/0.0.1-SNAPSHOT/try-0.0.1-SNAPSHOT.jar
[INFO] Installing /home/ubuntu/Spring/SpringBootData-REST/pom.xml to /home/ubuntu/.m2/repository/com/try/0.0.1-SNAPSHOT/try-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
But buildNumber is not replaced in version.txt.
Here is how it looks after maven clean install.
try-0.0.1-SNAPSHOT.${buildNumber}
Here is buildNumber.properties file with the buildNumber.
#maven.buildNumber.plugin properties file
#Sat Mar 09 11:51:51 CST 2019
buildNumber=10
Can you point out whats wrong?
So I found a workaround.
Changed my Version.txt to below instead of #project.build.finalName# and its working fine now.
#project.artifactId#
#project.version#
#buildNumber#
Output
SpringBootDataRest
1.0
15

Deploy to $CATALINA_HOME using maven cargo plugin

I use cargo-maven2-plugin to deploy war files to a running remote tomcat container. Now I need to copy files to $CATALINA_HOME/myfolder. I do this using ant-run/scp/ssh.
But is it possible to do this with the cargo-maven2-plugin or does it only operate on the application/webapps level?
Try cargo with installed deployer and existing configuration
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.5</version>
<configuration>
<container>
<containerId>tomcat7x</containerId>
<home>${env.CATALINA_HOME}</home>
</container>
<configuration>
<type>existing</type>
<home>${env.CATALINA_HOME}</home>
</configuration>
<deployer>
<type>installed</type>
</deployer>
</configuration>
</plugin>
My sample project works this way
$ mvn cargo:deploy
[INFO] --- cargo-maven2-plugin:1.4.5:deploy (default-cli) # sample-war ---
[INFO] [edDeployerDeployMojo] Resolved container artifact org.codehaus.cargo:cargo-core-container-tomcat:jar:1.4.5 for container tomcat7x
[INFO] [stalledLocalDeployer] Deploying [/home/mariuszs/git/sample-war/target/sample.war] to [/opt/tomcat/webapps]...
You can check full sample project for this https://github.com/mariuszs/cargo-existing-installed-sample
Some links than can help:
Local container
Existing Local Configuration

cargo-maven2-plugin does not wait for jboss as7 to start before executing integration tests

I have not been able to get a successful Maven pom.xml configuration to start JBoss AS 7, deploy a war artifact, and have it wait until the artifact has been successfully deployed before starting to run integration tests.
I've already consulted...
http://navinpeiris.com/tag/jboss-as-7/
http://cargo.codehaus.org/Maven2+Plugin+Reference+Guide#Maven2PluginReferenceGuide-deployer
I want to use an installed (and pre-configured) JBoss AS 7 container. I do not want to have it up-and-running all the time. I want to start it, run some tests, and shut it down.
My environment:
cargo-maven2-plugin 1.3.1
jboss-as-7.1.1.Final
maven-failsafe-plugin 2.12.4
Here's what I have for Failsafe config...
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-failsafe-plugin.version}</version>
<configuration>
<forkMode>once</forkMode>
<argLine>-javaagent:"${settings.localRepository}/org/springframework/spring-instrument/${spring.framework.version}/spring-instrument-${spring.framework.version}.jar"</argLine>
<useSystemClassLoader>true</useSystemClassLoader>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<!-- Uncomment the line below if you want the build to fail when any integration test fails -->
<!-- <goal>verify</goal> -->
</goals>
</execution>
</executions>
</plugin>
Here's what I have for Cargo config...
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>${cargo-maven2-plugin.version}</version>
<configuration>
<container>
<containerId>jboss71x</containerId>
<type>installed</type>
<home>${jboss71x.home}</home>
<output>${project.build.directory}/jboss71x/container.log</output>
<append>false</append>
<log>${project.build.directory}/jboss71x/cargo.log</log>
</container>
<configuration>
<type>standalone</type>
<home>${project.build.directory}/jboss71x/container</home>
<properties>
<cargo.jboss.configuration>default</cargo.jboss.configuration>
<cargo.rmi.port>1099</cargo.rmi.port>
<cargo.jvmargs>${servlet.container.jvmargs}</cargo.jvmargs>
<cargo.logging>high</cargo.logging>
<cargo.servlet.port>8080</cargo.servlet.port>
</properties>
</configuration>
<deployer>
<type>installed</type>
<deployables>
<deployable>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<type>war</type>
<properties>
<context>/ws</context>
</properties>
<pingURL>http://localhost:8080/ws/services</pingURL>
<pingTimeout>30000</pingTimeout>
</deployable>
</deployables>
</deployer>
</configuration>
<!-- http://navinpeiris.com/2011/08/22/running-integrationacceptance-tests-in-jboss-7-using-cargo/ -->
<executions>
<execution>
<id>start-container</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
<goal>deploy</goal>
</goals>
</execution>
<execution>
<id>stop-container</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
The above config works great when I want to manually startup the container with mvn clean package cargo:run. But it does not achieve the desired effect during CI builds with mvn clean integration-test.
Hints? Suggestions welcomed.
As I had the same problem, I want to add some explanation what is needed for this to work.
Notice the ping attributes in the deployable section. Cargo will repeatedly call the given URL for availability before continuing, but only until the timeout is reached.
<deployable>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<type>war</type>
<properties>
<context>/example-app</context>
</properties>
<pingURL>http://localhost:8080/example-app/ping</pingURL>
<pingTimeout>30000</pingTimeout>
</deployable>
To make your application pingable you have to provide an ping endpoint. You could use JAX-RS with RestEasy for an easy implementation.
#Path("/ping")
public class PingResourceImpl {
#GET
#PermitAll // optional. Is needed if you protected your ressources f.e. with a SecurityInterceptor.
public Response ping() {
return Response.ok().build();
}
}
Make sure you configure the servlet-mapping correctly.
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/ping</url-pattern>
</servlet-mapping>
The configuration above does work!
I had to restart my shell then re-build my project. I do get a deprecation warning on start and stop of the container, but that's a small worry.
[INFO] Building war: D:\workspaces\alstom-grid\Projects\SPP\SPP-MUI\spp-im-mui-ws\target\spp-im-mui-ws-1.0-SNAPSHOT.war
[INFO]
[INFO] --- cargo-maven2-plugin:1.3.1:start (start-container) # spp-im-mui-ws ---
[WARNING] The <deployables> element under the <deployer> element is deprecated. Please use <deployables> under the plugin <configuration> instead.
[WARNING] The <deployables> element under the <deployer> element is deprecated. Please use <deployables> under the plugin <configuration> instead.
[WARNING] The <deployables> element under the <deployer> element is deprecated. Please use <deployables> under the plugin <configuration> instead.
[INFO]
[INFO] --- maven-failsafe-plugin:2.12.4:integration-test (default) # spp-im-mui-ws ---
[INFO] Failsafe report directory: D:\workspaces\alstom-grid\Projects\SPP\SPP-MUI\spp-im-mui-ws\target\failsafe-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.spp.im.mui.jaxws.client.test.VirtualWebServiceClientITCase
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.032 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 1
[INFO]
[INFO] --- cargo-maven2-plugin:1.3.1:stop (stop-container) # spp-im-mui-ws ---
[WARNING] The <deployables> element under the <deployer> element is deprecated. Please use <deployables> under the plugin <configuration> instead.
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) # spp-im-mui-ws ---
[INFO] Installing D:\workspaces\alstom-grid\Projects\SPP\SPP-MUI\spp-im-mui-ws\target\spp-im-mui-ws-1.0-SNAPSHOT.war to C:\.m2\repository\org\spp\im\mui\spp-im-mui-ws\1.0-SNAPSHOT\spp-im-mui-ws-1.0-SNAPSHOT.war
[INFO] Installing D:\workspaces\alstom-grid\Projects\SPP\SPP-MUI\spp-im-mui-ws\pom.xml to C:\.m2\repository\org\spp\im\mui\spp-im-mui-ws\1.0-SNAPSHOT\spp-im-mui-ws-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:16.016s
[INFO] Finished at: Wed Nov 28 11:51:39 PST 2012
[INFO] Final Memory: 14M/256M
[INFO] ------------------------------------------------------------------------

maven-deploy-plugin deploy-file goal insists on deploying javadoc file for previous deploy-file execution

I have a pom which I use to package some third party jars to deploy to a local nexus.
However it always fails with the second upload. It seems as if it is always picking up the javadoc associated with the first deploy-file execution, eventhough I have not specified this.
Is this a bug, or what am I doing wrong?
<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>
<groupId>a.b.c</groupId>
<artifactId>vendorx_jdbc_driver_wrapper</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<vendorx_jdbc_driver_wrapper.javadoczip>${basedir}/files/11.2.0.1.0/jdbc/javadoc.zip</vendorx_jdbc_driver_wrapper.javadoczip>
<vendorx_jdbc_driver_wrapper.javadoctemp>${basedir}/files/11.2.0.1.0/jdbc/javadoctemp</vendorx_jdbc_driver_wrapper.javadoctemp>
<vendorx_jdbc_driver_wrapper.javadocfile>${basedir}/files/11.2.0.1.0/jdbc/javadoctemp/thejavadocs.jar</vendorx_jdbc_driver_wrapper.javadocfile>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>prepare</id>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo message="repackge the vendorx javadoc zip to be in the expected format" />
<delete includeemptydirs="true">
<fileset dir="${vendorx_jdbc_driver_wrapper.javadoctemp}" includes="**/*" defaultexcludes="false"/>
</delete>
<unzip src="${vendorx_jdbc_driver_wrapper.javadoczip}" dest="${vendorx_jdbc_driver_wrapper.javadoctemp}" />
<!-- N.B. vendorx zip version specific location - you will have to change this to make it work -->
<jar destfile="${vendorx_jdbc_driver_wrapper.javadocfile}" basedir="${vendorx_jdbc_driver_wrapper.javadoctemp}/E13995_02/html"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>install-library-main</id>
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${basedir}/files/11.2.0.1.0/jdbc/lib/vjdbc99.jar</file>
<groupId>a.b.c.com.vendorx</groupId>
<artifactId>vjdbc99</artifactId>
<version>11.2.0.1.0</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>install-javadocs-main</id>
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${vendorx_jdbc_driver_wrapper.javadocfile}</file>
<groupId>a.b.c.com.vendorx</groupId>
<artifactId>vjdbc99</artifactId>
<version>11.2.0.1.0</version>
<packaging>jar</packaging>
<classifier>javadoc</classifier>
</configuration>
</execution>
<execution>
<id>install-library-debug</id>
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${basedir}/files/11.2.0.1.0/jdbc/lib/vjdbc99_g.jar</file>
<groupId>a.b.c.com.vendorx</groupId>
<artifactId>vjdbc99_g</artifactId>
<version>11.2.0.1.0</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>install-javadocs-debug</id>
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<!-- same javadocs as for non debug -->
<file>${vendorx_jdbc_driver_wrapper.javadocfile}</file>
<groupId>a.b.c.com.vendorx</groupId>
<artifactId>vjdbc99_g</artifactId>
<version>11.2.0.1.0</version>
<packaging>jar</packaging>
<classifier>javadoc</classifier>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
<executions>
<!-- Don't bother deploying this POM ... its only the artifact we want to deploy -->
<execution>
<id>default-deploy</id>
<phase>deploy</phase>
<goals>
<goal>deploy</goal>
</goals>
<configuration>
<skip>true</skip>
</configuration>
</execution>
<!-- This is the real thing we are deploying -->
<execution>
<id>deploy-library-main</id>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<file>${basedir}/files/11.2.0.1.0/jdbc/lib/vjdbc99.jar</file>
<groupId>a.b.c.com.vendorx</groupId>
<artifactId>vjdbc99</artifactId>
<version>11.2.0.1.0</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
<javadoc>${vendorx_jdbc_driver_wrapper.javadocfile}</javadoc>
<url>http://foo.lan:8888/nexus/content/repositories/releases</url>
<repositoryId>releases</repositoryId>
</configuration>
</execution>
<execution>
<id>deploy-library-debug</id>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<file>${basedir}/files/11.2.0.1.0/jdbc/lib/vjdbc99_g.jar</file>
<groupId>a.b.c.com.vendorx</groupId>
<artifactId>vjdbc99_g</artifactId>
<version>11.2.0.1.0</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
<url>http://foo.lan:8888/nexus/content/repositories/releases</url>
<repositoryId>releases</repositoryId>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>releases</id>
<url>http://foo.lan:8888/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://foo.lan:8888/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
</project>
Here's the output
C:\Users\wibble\workspace\vendorx_jdbc_driver_wrapper>mvn deploy
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building vendorx_jdbc_driver_wrapper 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-antrun-plugin:1.2:run (prepare) # vendorx_jdbc_driver_wrapper ---
[INFO] Executing tasks
[echo] repackge the vendorx javadoc zip to be in the expected format
[unzip] Expanding: C:\Users\wibble\workspace\vendorx_jdbc_driver_wrapper\files\11.2.0.1.0\jdbc\javadoc.zip into C:\Users\wibble\workspace\vendorx_jdbc_driver_wrapper\files\11.2.0.1.0\j
dbc\javadoctemp
[jar] Building jar: C:\Users\wibble\workspace\vendorx_jdbc_driver_wrapper\files\11.2.0.1.0\jdbc\javadoctemp\thejavadocs.jar
[INFO] Executed tasks
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) # vendorx_jdbc_driver_wrapper ---
[INFO] Installing C:\Users\wibble\workspace\vendorx_jdbc_driver_wrapper\pom.xml to C:\Users\wibble\.m2\repository\uk\co\his\vendorx_jdbc_driver_wrapper\0.0.1-SNAPSHOT\vendorx_jdbc_driver_wr
apper-0.0.1-SNAPSHOT.pom
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install-file (install-library-main) # vendorx_jdbc_driver_wrapper ---
[INFO] Installing C:\Users\wibble\workspace\vendorx_jdbc_driver_wrapper\files\11.2.0.1.0\jdbc\lib\vjdbc99.jar to C:\Users\wibble\.m2\repository\uk\co\his\com\vendorx\vjdbc99\11.2.0.1.0\ojdbc
6-11.2.0.1.0.jar
[INFO] Installing C:\Users\wibble\AppData\Local\Temp\1\mvninstall1181445077198226588.pom to C:\Users\wibble\.m2\repository\uk\co\his\com\vendorx\vjdbc99\11.2.0.1.0\vjdbc99-11.2.0.1.0.pom
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install-file (install-javadocs-main) # vendorx_jdbc_driver_wrapper ---
[INFO] Installing C:\Users\wibble\workspace\vendorx_jdbc_driver_wrapper\files\11.2.0.1.0\jdbc\javadoctemp\thejavadocs.jar to C:\Users\wibble\.m2\repository\uk\co\his\com\vendorx\vjdbc99\11.
2.0.1.0\vjdbc99-11.2.0.1.0-javadoc.jar
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install-file (install-library-debug) # vendorx_jdbc_driver_wrapper ---
[INFO] Installing C:\Users\wibble\workspace\vendorx_jdbc_driver_wrapper\files\11.2.0.1.0\jdbc\lib\vjdbc99_g.jar to C:\Users\wibble\.m2\repository\uk\co\his\com\vendorx\vjdbc99_g\11.2.0.1.0\o
jdbc6_g-11.2.0.1.0.jar
[INFO] Installing C:\Users\wibble\AppData\Local\Temp\1\mvninstall4548076073436253537.pom to C:\Users\wibble\.m2\repository\uk\co\his\com\vendorx\vjdbc99_g\11.2.0.1.0\vjdbc99_g-11.2.0.1.0.pom
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install-file (install-javadocs-debug) # vendorx_jdbc_driver_wrapper ---
[INFO] Installing C:\Users\wibble\workspace\vendorx_jdbc_driver_wrapper\files\11.2.0.1.0\jdbc\javadoctemp\thejavadocs.jar to C:\Users\wibble\.m2\repository\uk\co\his\com\vendorx\vjdbc99_g\1
1.2.0.1.0\vjdbc99_g-11.2.0.1.0-javadoc.jar
[INFO]
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) # vendorx_jdbc_driver_wrapper ---
[INFO] Skipping artifact deployment
[INFO]
[INFO] --- maven-deploy-plugin:2.7:deploy-file (deploy-library-main) # vendorx_jdbc_driver_wrapper ---
Uploading: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99/11.2.0.1.0/vjdbc99-11.2.0.1.0.jar
Uploaded: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99/11.2.0.1.0/vjdbc99-11.2.0.1.0.jar (2062 KB at 3152.7 KB/sec)
Uploading: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99/11.2.0.1.0/vjdbc99-11.2.0.1.0.pom
Uploaded: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99/11.2.0.1.0/vjdbc99-11.2.0.1.0.pom (404 B at 8.8 KB/sec)
Downloading: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99/maven-metadata.xml
Uploading: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99/maven-metadata.xml
Uploaded: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99/maven-metadata.xml (316 B at 6.1 KB/sec)
Uploading: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99/11.2.0.1.0/vjdbc99-11.2.0.1.0-javadoc.jar
Uploaded: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99/11.2.0.1.0/vjdbc99-11.2.0.1.0-javadoc.jar (780 KB at 1621.4 KB/sec)
[INFO]
[INFO] --- maven-deploy-plugin:2.7:deploy-file (deploy-library-debug) # vendorx_jdbc_driver_wrapper ---
Uploading: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99_g/11.2.0.1.0/vjdbc99_g-11.2.0.1.0.jar
Uploaded: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99_g/11.2.0.1.0/vjdbc99_g-11.2.0.1.0.jar (3323 KB at 2472.1 KB/sec)
Uploading: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99_g/11.2.0.1.0/vjdbc99_g-11.2.0.1.0.pom
Uploaded: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99_g/11.2.0.1.0/vjdbc99_g-11.2.0.1.0.pom (406 B at 6.8 KB/sec)
Downloading: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99_g/maven-metadata.xml
Uploading: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99_g/maven-metadata.xml
Uploaded: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99_g/maven-metadata.xml (318 B at 4.7 KB/sec)
Uploading: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99/11.2.0.1.0/vjdbc99-11.2.0.1.0-javadoc.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.311s
[INFO] Finished at: Mon Jan 23 12:34:09 GMT 2012
[INFO] Final Memory: 4M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file (deploy-library-debug) on project vendorx_jdbc_driver_wrapper: Error deploying attached artifact C:\Users\Adm
inistrator\workspace\vendorx_jdbc_driver_wrapper\files\11.2.0.1.0\jdbc\javadoctemp\thejavadocs.jar: Failed to deploy artifacts: Could not transfer artifact uk.co.his.com.vendorx:vjdbc99:jar:javadoc:11.2.
0.1.0 from/to releases (http://foo.lan:8888/nexus/content/repositories/releases): Failed to transfer file: http://foo.lan:8888/nexus/content/repositories/releases/a/b/c/com/vendorx/vjdbc99/1
1.2.0.1.0/vjdbc99-11.2.0.1.0-javadoc.jar. Return code is: 400 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
C:\Users\wibble\workspace\vendorx_jdbc_driver_wrapper>
I have created a bug on the deploy plugin jira:
MDEPLOY-143
Third party POMs will almost never play together nicely with your local Maven infrastructure.
The POM in question modifies the Maven build lifecycle by associating a number of goals with the phase install.
To deploy artifacts defined by that POM, I'd recommend you first create the artifacts by issuing a mvn package command. This will create the artifacts in your project's build folder (target/) but not send them to your local repository. Then upload them manually one by one into your repository.
If instead you prefer to deploy straight from that POM file, be prepared to do some serious editing beforehand.
As a side note: you might want to put such artifacts into a 3rd party repository inside your Nexus, not into nexus/content/repositories/releases, which is reserved for releases of your own software only (by convention).
Hope this helps!

Resources