David, On 3/10/2016 2:31 PM, David M. Karr wrote: > Several days ago, on the advice of someone on another list, I configured > the use of the "maven-dependency-plugin" in my POM so that the build > would copy some dependencies into a local folder, not inside the target > folder. > > This worked the very first time I ran the build with it, and I've been > using the results for a while. > > Today I started to look at this again, to ensure that these copied > artifacts would be properly cleaned up from "mvn clean". I first tried > reconfiguring where it wrote the jars, changing it from "libs" to > "target/libs". For some reason, when I ran the build, it didn't create > "target/libs", nor did it copy the jars. At that point, I thought there > was some issue with writing them into a subfolder of "target". > > I then changed it back to "libs", but I implemented additional > "maven-clean-plugin" configuration to make it delete that folder. When I > ran "mvn clean", it did what I expected, removing that folder, along > with "target". > > However, when I then tried to build the whole thing again, I found that > it wasn't creating the "libs" folder, and it wasn't copying the jars > there. I then tried manually creating "libs", but that didn't help. I > tried adding "--debug", which didn't tell me anything useful. I imagine > the same thing that is making it not copy the jars into "libs" is the > same thing that prevented it writing them into "target/libs", so there > likely wasn't a real issue with using a subfolder of "target", but > something else is just preventing it from copying the jars. > > This is what I have in the POM for this plugin (eliding the details of > each artifact): > ----------------- > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-dependency-plugin</artifactId> > <version>2.10</version> > <executions> > <execution> > <id>copy</id> > <phase>package</phase> > <goals> > <goal>copy</goal> > </goals> > <configuration> > <artifactItems> > <artifactItem> > ... > </artifactItem> > <artifactItem> > ... > </artifactItem> > <artifactItem> > ... > </artifactItem> > <artifactItem> > ... > </artifactItem> > </artifactItems> > </configuration> > </execution> > </executions> > </plugin> > -------------------
My copy looks like this:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<includeScope>compile</includeScope>
</configuration>
</execution>
</executions>
</plugin>
I'm currently running 3.3.3 and JDK 1.8.0_74. I need to upgrade my Maven.
This works as expected, with dependencies getting copied to target/lib.
I have this in my JAR plugin:
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
along with specifying the main class.
I create both a zip and a tar.gz file with the assembly plugin.
An end user just unpacks the archive, changes to the directory where the
archive was unpacked, and runs java -jar ${artifactId}.jar.
Seems to work reasonably well.
. . . just my two cents
/mde/
I use the assembly plugin to create a zip and a tar.gz file.
signature.asc
Description: OpenPGP digital signature
