construir un proyecto maven con bibliotecas de propiedad incluidas

Cómo crear maven pom, que hará que el proyecto sea edificable, ¿puedo incluir jarrones propios con mi proyecto directamente sin tener que sacarlos del repository? Alguien hizo esto antes?

EDITAR:

No quiero que se pueda ejecutar construyendo assembly con dependencias jar, quiero que se pueda comstackr. Entonces, cualquiera que tenga este proyecto puede construirlo, incluso si los flasks no se encuentran en ningún repository.

1 O puede incluir ese jar en su classpath de aplicación
2 puede instalar un archivo jar particular en su maven reopos por

 mvn install:install-file -Dfile= -DgroupId= \ -DartifactId= -Dversion= -Dpackaging= 

Posibles soluciones es poner sus dependencias en src / main / resources luego en su pom:

  groupId ... artifactId ... version ... system ${project.basedir}/src/main/resources/yourJar.jar  

Nota: las dependencias del sistema no se copian en jar / guerra resultante
(ver Cómo incluir dependencias del sistema en war build usando maven )

Crea una carpeta de repository bajo tu proyecto. Echemos

 ${project.basedir}/src/main/resources/repo 

Luego, instale su jar personalizado en este repository:

 mvn install:install-file -Dfile=[FILE_PATH] \ -DgroupId=[GROUP] -DartifactId=[ARTIFACT] -Dversion=[VERS] \ -Dpackaging=jar -DlocalRepositoryPath=[REPO_DIR] 

Por último, agregue las siguientes definiciones de repository y dependencia a los proyectos pom.xml:

   project-repo file://${project.basedir}/src/main/resources/repo     [GROUP] [ARTIFACT] [VERS]   

¿Por qué no ejecutar algo como Nexus , su propio repository maven que puede cargar archivos jar propietarios de terceros, y también proxy otros repositorys públicos, para ahorrar en ancho de banda?

Esto también tiene algunas buenas razones para ejecutar su propio administrador de repository maven.

Puede obtenerlo de su controlador local de la siguiente manera:

  sample com.sample 1.0 system ${project.basedir}/src/main/resources/yourJar.jar  

La manera realmente rápida y sucia es apuntar a un archivo local:

  sample com.sample 1.0 system C:\DEV\myfunnylib\yourJar.jar  

Sin embargo, esto solo vivirá en tu máquina (obviamente), para compartirlo normalmente tiene sentido usar un archivo m2 adecuado (nexus / artifactory) o si no tienes ninguno de estos o no quieres configurar uno maven local archivo estructurado y configure un “repository” en su pom: local:

   my-local-repo file://C:/DEV//mymvnrepo   

remoto:

   my-remote-repo http://192.168.0.1/whatever/mavenserver/youwant/repo   

Una buena forma de lograr esto es tener un servidor espejo Maven como Sonatype Nexus . Es gratis y muy fácil de configurar (aplicación web Java). Con Nexus, uno puede tener un repository privado (de equipo, corporativo, etc.) con la capacidad de implementar aplicaciones internas y de terceros, y también registrar otros repositorys Maven como parte del mismo servidor. De esta forma, las configuraciones locales de Maven solo harían referencia al único servidor Nexus privado y todas las dependencias se resolverán con él.

Puedes agregar el jar a tu proyecto y jugar con el maven-assembly-plugin, o agregar el jar al repository local:

 mvn install:install-file -Dfile= -DgroupId= -DartifactId= -Dversion= -Dpackaging= -DgeneratePom=true Where:  the path to the file to load  the group that the file should be registered under  the artifact name for the file  the version of the file  the packaging of the file eg jar 

Creo que la solución “correcta” aquí es agregar sus bibliotecas propietarias a su propio repository. Debería ser simple: cree pom para su proyecto de biblioteca y publique la versión comstackda en su repository. Agregue este repository a la lista de repositorys para su proyecto de correo y ejecute build. Creo que funcionará para ti.

Puede usar maven-assembly-plugin y crear un jar con todas las dependencias incluidas.

Cree una nueva carpeta, digamos local-maven-repo en la raíz de su proyecto Maven.

Solo agregue un repository local en su de su pom.xml :

   local-maven-repo file:///${project.basedir}/local-maven-repo   

Luego, para cada jar externo que quiera instalar, vaya a la raíz de su proyecto y ejecute:

 mvn deploy:deploy-file -DgroupId=[GROUP] -DartifactId=[ARTIFACT] -Dversion=[VERS] -Durl=file:./local-maven-repo/ -DrepositoryId=local-maven-repo -DupdateReleaseInfo=true -Dfile=[FILE_PATH] 

(Copiado de mi respuesta en una pregunta similar )