¿Cómo copio las dependencias de tiempo de ejecución de mi proyecto en la target/lib
carpeta?
Como es ahora, después de que mvn clean install
la target
carpeta contenga solo el jar de mi proyecto, pero ninguna de las dependencias de tiempo de ejecución.
Respuestas:
Esto funciona para mi:
fuente
excludeScope
opción ( maven.apache.org/plugins/maven-dependency-plugin/… ).<excludeScope>test</excludeScope>
va dentro delconfiguration
nodo.El mejor enfoque depende de lo que quieras hacer:
fuente
Funciona para mí con el directorio de dependencias creado en la carpeta de destino. ¡Gusta!
fuente
Eche un vistazo al complemento de dependencia de Maven , específicamente, el objetivo de dependencia: dependencias de copia . Eche un vistazo al ejemplo bajo el título La dependencia: copia-dependencias mojo . Establezca la propiedad de configuración outputDirectory en $ {basedir} / target / lib (creo que tendrá que probar).
Espero que esto ayude.
fuente
Una solución simple y elegante para el caso en que uno necesita copiar las dependencias en un directorio de destino sin usar ninguna otra fase de Maven (esto me pareció muy útil cuando trabajé con Vaadin).
Ejemplo completo de pom:
Entonces corre
mvn process-sources
Las dependencias del archivo jar se pueden encontrar en
/target/dependency
fuente
Si desea hacer esto ocasionalmente (y por lo tanto no quiere cambiar su POM), intente esta línea de comando:
Si omite el último argumento , se colocan las dependencias
target/dependencies
.fuente
mvn dependency:copy-dependencies -DoutputDirectory=./lib
Intenta algo como esto:
fuente
maven clean install
, a continuación, se encuentralib
entarget
install
faseprocess-resources
para que las dependencias se copien antes de que sebuild
ejecute el objetivoTodo lo que necesitas es el siguiente fragmento dentro de pom.xml
build/plugins
:Lo anterior se ejecutará en la
package
fase cuando ejecutesY las dependencias se copiarán al directorio de salida especificado en el fragmento, es decir,
lib
en este caso.Si solo desea hacerlo ocasionalmente, no se requieren cambios en pom.xml. Simplemente ejecute lo siguiente:
Para anular la ubicación predeterminada, que es
${project.build.directory}/dependencies
, agregue una propiedad del Sistema llamadaoutputDirectory
, es decirfuente
suponiendo que
Esto es lo que funcionó para mí:
fuente
Si desea entregar un paquete de su jar de aplicación, junto con todas sus dependencias y algunos scripts para invocar MainClass, consulte el appassembler-maven-plugin .
La siguiente configuración generará scripts para Windows y Linux para iniciar la aplicación (con una ruta generada que hace referencia a todos los archivos jar de dependencias, descargue todas las dependencias (en una carpeta lib debajo de target / appassembler). El complemento de ensamblaje se puede usar para empaquetar todo appassembler directorio a un zip que se instala / implementa junto con el jar en el repositorio.
El descriptor de ensamblaje (en src / main / assembly) para empaquetar el directorio como un zip sería:
fuente
Si hace que su proyecto sea un war o ear type maven copiará las dependencias.
fuente
Puede usar el Shade Plugin para crear un jar súper en el que puede agrupar todas sus dependencias de terceros.
fuente
Solo para explicar lo que ya se ha dicho brevemente. Quería crear un archivo JAR ejecutable que incluyera mis dependencias junto con mi código. Esto funcionó para mí:
(1) En el pom, en <build> <plugins>, incluí:
(2) Ejecución del ensamblaje de compilación mvn: el ensamblado produjo el my-project-0.1-SNAPSHOT-jar-with-dependencies.jar deseado en el directorio de destino del proyecto.
(3) Ejecuté el JAR con java -jar my-project-0.1-SNAPSHOT-jar-with-dependencies.jar
fuente
Es una solución pesada para incrustar dependencias pesadas, pero el complemento de ensamblaje de Maven hace el truco por mí.
La respuesta de @ Rich Seller debería funcionar, aunque para casos más simples solo debería necesitar este extracto de la guía de uso :
fuente
Si tiene problemas relacionados con dependencias que no aparecen en el archivo WEB-INF / lib cuando se ejecuta en un servidor Tomcat en Eclipse, eche un vistazo a esto:
ClassNotFoundException DispatcherServlet al iniciar Tomcat (dependencias de Maven no copiadas a wtpwebapps)
Simplemente tenía que agregar las dependencias de Maven en Propiedades del proyecto> Ensamblaje de implementación.
fuente