On 03/10/2016 03:54 PM, Mark Eggers wrote:
David,
I just upgraded to 3.3.9, and ran the following on one of my projects
(twice):
mvn clean package
In both cases the JAR files were copied to my output directory and
included in both the zip and tar.gz files.
I guess a little more information is needed??
Ok. Following this is the entire pom.xml file in question. Two of the
artifacts aren't on MavenCentral, but the example could easily be
simplified to not specify those.
------------------------------
<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>
<parent>
<groupId>com.cisco.yangide</groupId>
<artifactId>com.cisco.yangide.parent</artifactId>
<version>1.1.1-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>com.cisco.yangide.core</artifactId>
<packaging>eclipse-plugin</packaging>
<version>1.1.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>libs</directory>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy</id>
<phase>prepare-package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>libs</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>org.antlr</groupId>
<artifactId>antlr4-runtime</artifactId>
<version>4.0</version>
<type>jar</type>
<overWrite>true</overWrite>
<destFileName>antlr4-runtime-4.0.jar</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.mapdb</groupId>
<artifactId>mapdb</artifactId>
<version>1.0.4</version>
<type>jar</type>
<overWrite>true</overWrite>
<destFileName>mapdb-1.0.4.jar</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-model-api</artifactId>
<version>0.6.1</version>
<type>jar</type>
<overWrite>true</overWrite>
<destFileName>yang-model-api-0.6.1.jar</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-parser-impl</artifactId>
<version>0.6.1</version>
<type>jar</type>
<overWrite>true</overWrite>
<destFileName>yang-parser-impl-0.6.1.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
----------------------
. . . just my two cents
/mde/
On 3/10/2016 3:44 PM, David M. Karr wrote:
On 03/10/2016 03:36 PM, Mark Eggers wrote:
David,
If you're providing a list of dependencies, then yes you'll use the copy
instead of copy-dependencies.
See the following for that information:
https://maven.apache.org/plugins/maven-dependency-plugin/index.html
Also, I notice that you don't have outputDirectory specified. If you
don't, the dependencies will be copied to
${project.build.directory}/dependency.
Actually, I was specifying that individually on each artifactItem, but
it's definitely an improvement to only specify that once. In any case,
it still makes no difference. It's not writing the artifacts, whether I
use "copy" or "copy-dependencies", or whether I say to write them to
"libs" or "${project.build.directory}/libs". It ("copy", to be specific)
did it the first time I ran this, but never since then.
I'm using Maven 3.3.9, with JDK 1.8.0_60.
See the following for that information:
https://maven.apache.org/plugins/maven-dependency-plugin/copy-mojo.html
. . . just my two cents
/mde/
On 3/10/2016 3:22 PM, David M. Karr wrote:
Thanks, but replacing my "manual" copy goal with "copy-dependencies" and
implicit dependency declarations made no difference. No error at this
phase, it just doesn't do anything.
On 03/10/2016 02:57 PM, Mark Eggers wrote:
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/
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org