Greetings,
I am generating several artifacts from my build; a WAR, a TAR.GZ, and
a JAR -- as required by downstream usage scenarios (embedded,
standalone, or webapp)
I am having trouble deploying the JAR properly. (Note: I had to add an
install:install-file section to my POM to get the JAR deployed locally
in the first place).
I have the project successfully generating all three artifacts (it is
a War project), and installing locally (mvn install). And I can build
dependent projects properly using the locally deployed artifacts
But when deploying the JAR remotely -- during the deploy phase -- the
maven-deploy-plugin is overwriting my POM with a bogus one (see
below) which consists only of project basics; id, version, etc. - no
dependencies. This happens during the deploy:deploy-file phase for the
JAR. (See the POM snippet below). The generated bogus POM causes
downstream dependencies to fail during compilation.
I tried setting the <generatePOM> element to false, but it throws an
NPE (See below). Does this work?
I do not know how to set the <pomFile> element. Is there a variable
available for the POM file?? e.g. ${project.pom} ?? Or even a
variable available for the local repository - so I could point at the
file? e.g. {maven.local.repo} ??
I must be messing up the wiring?? But Google Univ. isn't giving me any
leads. ;-)
Anyone have any clues for me??
Thanks,
-- Chris
The snippet from my POM::
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<inherited>true</inherited>
<configuration>
<!-- do not create unique binaries for each
snapshot -->
<uniqueVersion>false</uniqueVersion>
</configuration>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<packaging>jar</packaging>
<artifactId>${project.artifactId}</
artifactId>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
<file>
${project.build.directory}/$
{project.artifactId}-${project.version}/WEB-INF/lib/$
{project.artifactId}-${project.version}.jar
</file>
<repositoryId>codehaus.org</repositoryId>
<url>dav:https://dav.codehaus.org/snapshots.repository/atomserver/
</url>
<!-- <generatePom>false</generatePom> -->
<!-- <pomFile>${project.pom}</pomFile> -->
</configuration>
</execution>
</executions>
</plugin>
The bogus (empty) generated POM
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.atomserver</groupId>
<artifactId>atomserver</artifactId>
<version>2.0.2-SNAPSHOT</version>
</project>
The NPE from <generatePOM>false
[INFO] [deploy:deploy-file {execution: default}]
[INFO] Retrieving previous build number from codehaus.org
Uploading:
https://dav.codehaus.org/snapshots.repository/atomserver//org/atomserver/atomserver/2.0.2-SNAPSHOT/atomserver-2.0.2-SNAPSHOT.jar
[INFO] Retrieving previous metadata from codehaus.org
[INFO] Uploading repository metadata for: 'snapshot
org.atomserver:atomserver:2.0.2-SNAPSHOT'
[INFO] Retrieving previous metadata from codehaus.org
[INFO]
------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO]
------------------------------------------------------------------------
[INFO] null
[INFO]
------------------------------------------------------------------------
[INFO] Trace
java.lang.NullPointerException
at hidden.org.codehaus.plexus.util.FileUtils.copyFile(FileUtils.java:
899)
at
org
.apache
.maven
.project
.artifact
.ProjectArtifactMetadata
.storeInLocalRepository(ProjectArtifactMetadata.java:86)
at
org
.apache
.maven
.artifact
.repository
.metadata
.DefaultRepositoryMetadataManager
.deploy(DefaultRepositoryMetadataManager.java:428)
at
org
.apache
.maven
.artifact
.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:
86)
at
org
.apache.maven.plugin.deploy.DeployFileMojo.execute(DeployFileMojo.java:
239)
at
org
.apache
.maven
.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
at
org
.apache
.maven
.lifecycle
.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:
539)
at
org
.apache
.maven
.lifecycle
.DefaultLifecycleExecutor
.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
at
org
.apache
.maven
.lifecycle
.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
at
org
.apache
.maven
.lifecycle
.DefaultLifecycleExecutor
.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
at
org
.apache
.maven
.lifecycle
.DefaultLifecycleExecutor
.executeTaskSegments(DefaultLifecycleExecutor.java:278)
at
org
.apache
.maven
.lifecycle
.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun
.reflect
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:
430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
S'all good --- chriswberry at gmail dot com