Since nobody answered my question I'll try to explain why I think this is a 
problem. I use profiles and filters to adjust e.g. persistence.xml files to a 
given environment, e.g. dev, staging, prd. Because the persistence.xml file is 
part of the installed artifact I use classifiers to distinguish between them, 
e.g. ejb-module-1.0-SNAPSHOT-dev.jar is different form 
ejb-module-1.0-SNAPSHOT-stg.jar.

I never do a build without classifier. Due to the fact that the pom does not 
get installed when a classifier is used (see below) dependency resolution 
fails, e.g. if I add ejb-module-1.0-SNAPSHOT-stg as dependency to an EAR, the 
EAR will contain ejb-module-1.0-SNAPSHOT-stg.jar but not its dependencies.

To reproduce this simply create an empty project with the following pom:

<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/maven-v4_0_0.xsd";>
  <modelVersion>4.0.0</modelVersion>
  <groupId>test</groupId>
  <artifactId>classifier-test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
        <plugins>
                <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jar-plugin</artifactId>
                        <configuration>
                                <classifier>${myEnv}</classifier>
                        </configuration>
                </plugin>
        </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1.1</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

$ mvn -DmyEnv=dev install
$ ls -R .m2/repository/test/classifier-test/
.m2/repository/test/classifier-test/:
0.0.1-SNAPSHOT

.m2/repository/test/classifier-test/0.0.1-SNAPSHOT:
classifier-test-0.0.1-SNAPSHOT-dev.jar

$ mvn -DmyEnv= install
$ ls -R .m2/repository/test/classifier-test/
.m2/repository/test/classifier-test/:
0.0.1-SNAPSHOT  maven-metadata-local.xml

.m2/repository/test/classifier-test/0.0.1-SNAPSHOT:
classifier-test-0.0.1-SNAPSHOT-dev.jar  classifier-test-0.0.1-SNAPSHOT.pom
classifier-test-0.0.1-SNAPSHOT.jar      maven-metadata-local.xml

I tested this with maven 2.0.9, 2.0.10, 2.1.0 and 3.0-alpha-1.

Thanks,
  Niklas.

> Hi All,
> 
> when I do a 'mvn install' and the maven jar/ejb plugin is configured to
> use a classifier e.g.
> ...
> <plugin>
>     <artifactId>maven-jar-plugin</artifactId>
>     <configuration>
>         <classifier>dev</classifier>
>     </configuration>
> </plugin>
> ...
> 
> only the .jar file gets installed in the local repository. If I don't use
> a classifier the pom gets installed alongside the .jar file. and
> maven-metadata-local.xml file is created in the directory above.
> 
> Is not installing the pom if a classifier is used the intended behaviour?
> 
> I'm using Maven 2.0.10 and tested this only for jar and ejb types.
> 
> Thanks,
>   Niklas.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to