tags:

views:

1193

answers:

2

Hi,

I have Maven project with dependencies in repo and stuff. I want to "export" its sources with all dependencies so that I can successfully open it in IDE without Maven running on a machine.

When packaging project into war file, it has all dependencies packed with it.

So I want to have all that dependencies plus my sources gathered in one place, which can be opened with IDE (Eclipse or IDEA) all those libraries detected?

+3  A: 

Try maven-dependency-plugin with goal copy-dependencies

<project>
[...]
<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
      <execution>
        <id>copy-dependencies</id>
        <phase>package</phase>
        <goals>
          <goal>copy-dependencies</goal>
        </goals>
        <configuration>
          <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
          <overWriteReleases>false</overWriteReleases>
          <overWriteSnapshots>false</overWriteSnapshots>
          <overWriteIfNewer>true</overWriteIfNewer>
        </configuration>
      </execution>
    </executions>
  </plugin>
</plugins>
</build>
[...]
</project>

PS.
Are you aware of maven and IDE integration (for Eclipse p.e.)? Maven can generate project for particular IDE and include all dependent jars as variables (pointing to these jars in local repository), so there is no need to use copy dependecies to subfolder.

cetnar
thanks. This can work, I'll check this
glaz666
>>Are you aware of maven and IDE integrationIf you are talking about opening POM file in IDE which will then discover sources and dependencies, that's not what I want. I just need to copy the project sources and libs and be able to open and run it on the machine without maven installed. So I think, I'll use the plugin you're talking about
glaz666
+1  A: 

Actually, there is nothing that will create a bundle with sources and dependencies out of the box. For this, you'll need to use a combination of the some plugins.

For dependencies, the Maven 2 Dependency Plugin and its copy-dependencies will help as pointed out by cetnar.

For sources, you might need the Maven Source Plugin and its source:aggregate goal (or maybe the Maven Assembly Plugin and the pre-defined src descriptor but source:aggregate is handy for multi-modules builds).

To bind the whole thing together (and maybe unpack sources), I'd use the Maven Assembly Plugin.

Pascal Thivent
I suppouse by mean `my sources gathered in one place` glaz666 mean regural java project with sources (from VCS or not) and all dependencies in lib subfolder. +1 for source:aggregate for multimodule.
cetnar