2011-10-06 21 views
11

He copiado los JAR en src\main\webapp\WEB-INF\lib.
Uso el eclipse. Si agrego las jarras una por una a Proyecto-> Ruta de compilación de Java-> Agregar jarros, entonces hago Proyecto-> Maven-> Actualizar configuración del proyecto, Maven las elimina. Y Eclipse muestra errores, que contienen "xxx no se puede resolver".Maven: ¿Cómo incluir los archivos jar en Eclipse, que no están disponibles en el repositorio?

Env: 
Eclipse Java EE IDE for Web Developers. 
Version: Indigo Service Release 1 
Build id: 20110916-0149 

m2e - Maven Integration for Eclipse 1.0.100.20110804-1717 

Nota: No quiero crear mi propio repositorio de Maven. Solo se usará una vez.
¿Cómo debo proceder?

Respuesta

18

No todas las bibliotecas se pueden encontrar en un repositorio público de Maven, por ejemplo, sus propias bibliotecas o bibliotecas propietarias. De todos modos primero puedes search the Maven Repository, tal vez algunos de ellos estén allí.

En caso de que sean en realidad no existe, y que no quieren instalar Nexus o Artifactory, puede elegir uno de estos dos enfoques:

  • instalar los frascos en la memoria caché del repositorio local, sin necesidad de crear un repositorio especial. Ver el instructions on mkyong.

  • otro enfoque es el uso de dependencias del sistema, usted acaba de poner una ruta para llegar al Jar en el sistema de archivos. Es un enfoque menos recomendado, pero si realmente lo quieres, funcionará. Aquí está el official documentation.

+0

En realidad, se trata de una muy viejo proyecto con demasiados JAR. No quiero instalar JAR en mi repositorio local. – fjjiaboming

+0

Puede usar las dependencias del sistema a continuación. Lo he agregado a la respuesta. – stivlo

+0

Realmente no me gusta el enfoque 2. Primero, un jar a un denpendcy; Segundo, demasiados JAR que necesito agregar manualmente la dependencia uno por uno. Por lo tanto, debo adoptar el enfoque 1 para instalar el repositorio local uno por uno si no tengo mejores enfoques. ¡Gracias! – fjjiaboming

2

Añade esto a Systems Dependency.


En caso de que desee añadir este (esto utiliza JQuantLib como ejemplo) para el experto en el uso de recompra locales:

mvn install:install-file -Dfile=./jquantlib-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib -Dversion=0.2.4 -Dpackaging=jar 

Para ello utilizo un archivo por lotes

@echo off 

cd lib 

CMD /C "mvn install:install-file -Dfile=./jquantlib-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib -Dversion=0.2.4 -Dpackaging=jar" 
CMD /C "mvn install:install-file -Dfile=./jquantlib-helpers-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-helpers -Dversion=0.2.4 -Dpackaging=jar" 
CMD /C "mvn install:install-file -Dfile=./jquantlib-samples-0.2.4-ubber.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-ubber -Dversion=0.2.4 -Dpackaging=jar" 
CMD /C "mvn install:install-file -Dfile=./jquantlib-samples-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-samples -Dversion=0.2.4 -Dpackaging=jar" 

CMD /C "mvn install:install-file -Dfile=./ta-lib-0.4.0.jar -DgroupId=com.tictactec -DartifactId=ta-lib -Dversion=0.4.0 -Dpackaging=jar" 

Puede usar un archivo de script similar en otros sistemas.

0

Creo que el enfoque de dependencia del sistema no se debe utilizar a menos que no tenga otra opción, y eso se debe a que está perdiendo toda la "portabilidad de compilación" aquí. Por supuesto, puede almacenar sus jarras en su sistema de control de fuente junto con los archivos fuente de su proyecto, pero no creo que sea un buen enfoque tampoco ...

Usar solamente install: install-file no es lo suficientemente bueno - De hecho, esto implementaría las jarras en el formato adecuado en su repositorio local, pero ¿qué ocurre cuando se traslada a otra computadora y comienza a construir su proyecto allí? Tendrá que hacer esto una vez más.

Entonces, si no quiere instalar nexus/artifactory (que es la mejor solución, creo), probablemente debería crear otro repositorio (solo en un sistema de archivos en algunos de sus servidores), y desplegar los frascos allí (puede usar mvn install: install-file como se sugirió aquí, y luego simplemente copie todo el árbol). Ahora puede configurar el servidor web Apache y acceder al directorio con todos sus archivos jar a través de http. No creo que sea mejor que el enfoque nexus/artifactory, pero puede ser un poco más fácil si estás familiarizado con el servidor web apache. Para que su experto sepa sobre este nuevo repositorio, deberá editar el archivo% MAVEN_HOME% \ conf \ settings.xml

0

Para agregar archivos JAR externos que no estén en el repositorio local simplemente haga clic derecho en su fuente principal carpeta y desde el menú de ruta de compilación seleccione: "configurar ruta de compilación", luego vaya a la pestaña de bibliotecas y haga clic en "agregar archivos JAR externos". luego, ubique el archivo JAR (o zip) que desea agregar como biblioteca y haga clic en Aceptar.

Felicitaciones, ahora han añadido con éxito un JAR externo (o zip) a su trayectoria de la estructura y ahora se puede importar las clases de ese archivo JAR en su proyecto sin lanzar un error Picture How-To :) http://hostthenpost.org/uploads/541be8420657320c74489ff8d456ad08.png

Cuestiones relacionadas