2011-02-07 9 views
5

Recibí algunas compiladas clases que necesito agregar a un proyecto.Agregar clase compilada java a un proyecto de maven

Una solución que se me ocurre es crear un contenedor con estos archivos y cargarlo manualmente al repositorio. Obviamente esto funcionará. Pero me pregunto si hay una solución más elegante. ¿Puede ser que los pueda poner de alguna manera bajo la estructura del proyecto? Por lo tanto, los archivos se registrarán en el control de origen y será más fácil mantener sus versiones, etc.

+1

No hay nada elegante acerca de la distribución de las clases compiladas no empaquetadas en primer lugar, me temo. –

+0

Como ha implicado Boris, el almacenamiento de archivos de clase binarios en un repositorio de control de origen es una mala idea. – crowne

+0

@Sean: estoy de acuerdo, pero esta es la situación dada, bastante nueva para mí, debo admitirlo, pero actualmente no hay nada que pueda hacer al respecto. – Tarlog

Respuesta

8

Aquí es mi método de acuerdo con las observaciones sobre la respuesta de Boris (después de encontrar a mí mismo tener que usar el mismo ayer, pero no puede encontrar el enlace a la respuesta que había usado):

En el directorio del proyecto, crea una carpeta llamada repo, que usaremos como un repositorio Maven basado en carpetas.

Añadir el siguiente repositorio de archivos a su proyecto pom.xml:

<repositories> 
    <repository> 
     <id>file.repo</id> 
     <url>file://${project.basedir}/repo</url> 
    </repository> 
</repositories> 

Paquete sus clases como un frasco, y desplegarlos en el repositorio de archivos, con el siguiente comando:

mvn deploy:deploy-file 
-Durl=file:///absolute/path/to/your-project/repo \ 
-DrepositoryId=file.repo \ 
-Dfile=path-to-your.jar \ 
-DgroupId=some.external.project.group \ 
-DartifactId=the-artifact-name \ 
-Dversion=1.0 \ 
-Dpackaging=jar; 

Después de esto simplemente puede agregar una dependencia normal en el jar en su proyecto pom.xml, usando los valores para groupId, artifactId y la versión que aprobó anteriormente. A continuación, puede agregar la carpeta repo a SVN y confirmar los cambios en su pom.xml. Cualquier desarrollador que verifique su proyecto ahora podrá usar la misma dependencia sin ningún esfuerzo.

2

La primera idea es mucho mejor que comprobar los archivos binarios sobre los que no tiene control. Por lo tanto, agrupe los binarios en un contenedor, vuélvalo a la versión y despliéguelo en el repositorio.

+5

Y si está trabajando junto con otras personas con las que no comparte un repositorio, y por lo tanto desea agregar la dependencia a su SCM: considere la creación de un depósito de archivos bajo el proyecto-raíz, despliegue su dependencia empaquetada a ese repositorio, haga referencia al repositorio de archivos en su POM de proyecto y agregue ese repositorio al control de revisión. – Tim

+0

@Tim su comentario merece ser una respuesta adicional. –

+0

Bueno, no puedo estar totalmente de acuerdo contigo. En el control de fuente, tengo más control sobre lo que está sucediendo. – Tarlog

Cuestiones relacionadas