Hi.

I am writing a little tutorial in my company about the use of the Maven
Assembly Plugin to build a executable jar, with all dependencies inside it.

When I was using Maven 2.2.1, the following would done the job:

...
 <build>
  <plugins>
...
   <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
     <source>1.5</source>
     <target>1.5</target>
     <archive>
      <manifest>
       <mainClass>com.company.classX</mainClass>
      </manifest>
     </archive>
     <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
     </descriptorRefs>
    </configuration>
   </plugin>
...
  </plugins>
 </build>
...


This time, however, I am using Maven 3.0.4, and I am getting this warning:


[WARNING] Cannot include project artifact: com.company.class; it doesn't
have an associated file or directory.


I read the plugin's documentation, but could not figure what is the problem.

Here is the complete pom I am using now:


<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>com.company</groupId>
  <artifactId>tutorial</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>someName</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 <compileSource>1.6</compileSource>
  </properties>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.0.2</version>
        <configuration>
          <source>${compileSource}</source>
    <target>${compileSource}</target>
        </configuration>
      </plugin>

 <plugin>
 <artifactId>maven-assembly-plugin</artifactId>
        <version>2.3</version>
        <configuration>

   <archive>
    <manifest>
     <mainClass>com.company.classX</mainClass>
    </manifest>
   </archive>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges
-->
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
 </plugin>

    </plugins>
  </build>

  <dependencies>

 <dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpclient</artifactId>
  <version>4.1.3</version>
 </dependency>

  </dependencies>

</project>


 The resulting jar contains httpclient and all the dependencies it has, but
no code of mine is added in the jar, and I get this output in command line:


D:\projetos\tutorial>mvn assembly:single
[INFO] Scanning for projects...
[INFO]
[INFO]
------------------------------------------------------------------------
[INFO] Building tutorial 1.0-SNAPSHOT
[INFO]
------------------------------------------------------------------------
[INFO]
[INFO] --- maven-assembly-plugin:2.3:single (default-cli) @ tutorial ---
*[WARNING] Cannot include project artifact:
com.company:tutorial:jar:1.0-SNAPSHOT; it doesn't have an associated file
or directory.*
[INFO] META-INF/ already added, skipping
[INFO] META-INF/MANIFEST.MF already added, skipping
[INFO] org/ already added, skipping
[INFO] org/apache/ already added, skipping
[INFO] org/apache/http/ already added, skipping
[INFO] org/apache/http/impl/ already added, skipping
[INFO] META-INF/NOTICE.txt already added, skipping
[INFO] META-INF/LICENSE.txt already added, skipping
[INFO] META-INF/maven/ already added, skipping
[INFO] META-INF/maven/org.apache.httpcomponents/ already added, skipping
[INFO] META-INF/ already added, skipping
[INFO] META-INF/MANIFEST.MF already added, skipping
[INFO] org/ already added, skipping
[INFO] org/apache/ already added, skipping
[INFO] META-INF/maven/ already added, skipping
[INFO] META-INF/ already added, skipping
[INFO] META-INF/MANIFEST.MF already added, skipping
[INFO] org/ already added, skipping
[INFO] org/apache/ already added, skipping
[INFO] org/apache/commons/ already added, skipping
[INFO] META-INF/LICENSE.txt already added, skipping
[INFO] META-INF/NOTICE.txt already added, skipping
[INFO] META-INF/maven/ already added, skipping
[INFO] Building jar:
D:\projetos\tutorial\target\tutorial-1.0-SNAPSHOT-jar-with-dependencies.jar
[INFO] META-INF/ already added, skipping
[INFO] META-INF/MANIFEST.MF already added, skipping
[INFO] org/ already added, skipping
[INFO] org/apache/ already added, skipping
[INFO] org/apache/http/ already added, skipping
[INFO] org/apache/http/impl/ already added, skipping
[INFO] META-INF/NOTICE.txt already added, skipping
[INFO] META-INF/LICENSE.txt already added, skipping
[INFO] META-INF/maven/ already added, skipping
[INFO] META-INF/maven/org.apache.httpcomponents/ already added, skipping
[INFO] META-INF/ already added, skipping
[INFO] META-INF/MANIFEST.MF already added, skipping
[INFO] org/ already added, skipping
[INFO] org/apache/ already added, skipping
[INFO] META-INF/maven/ already added, skipping
[INFO] META-INF/ already added, skipping
[INFO] META-INF/MANIFEST.MF already added, skipping
[INFO] org/ already added, skipping
[INFO] org/apache/ already added, skipping
[INFO] org/apache/commons/ already added, skipping
[INFO] META-INF/LICENSE.txt already added, skipping
[INFO] META-INF/NOTICE.txt already added, skipping
[INFO] META-INF/maven/ already added, skipping
[INFO]
------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 1.437s
[INFO] Finished at: Tue Apr 17 06:38:42 BRT 2012
[INFO] Final Memory: 4M/15M
[INFO]
------------------------------------------------------------------------
D:\projetos\tutorial>


 Does anyone please have any idea? I am getting crazy with this problem.

Thank you very much,
Kind regards,

QL.

Reply via email to