2009-09-09 30 views
9

Estoy usando seam para desarrollar mi aplicación y ejecutarla en weblogic 10.1MP Usando maven2 para compilar la aplicación y no encontré el archivo jboss-seam-wls-compatible.jar en ningún repositorio. En maven, cómo puedo copiar este jar desde mi carpeta local a la carpeta target/WEB-INF/lib.Maven Para copiar el archivo jar de la carpeta local

Respuesta

3

Puede instalar el contenedor en su repositorio local usando el plugin de instalación install-file goal, luego puede declarar una dependencia del artefacto como es normal, y el war plugin lo incluirá en su guerra automáticamente.

Si tiene un repositorio remoto, puede usar el complemento desplegable deploy-file goal para implementar el contenedor en ese repositorio, luego sus compañeros de equipo también pueden acceder al contenedor.

Para obtener información, hay un Jira para hacer que este artefacto esté disponible en la central.


Actualización basada en su comentario. Recomendaría no hacerlo, ya que no es una buena práctica, pero si debe alojar el archivo jar en la estructura de origen de su proyecto, puede ponerlo bajo src/main/lib y usar el plugin antrun para copiarlo a WEB-INF./lib.

Por ejemplo:

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <executions> 
     <execution> 
     <phase>process-resources</phase> 
     <configuration> 
      <tasks> 
      <copy todir="${project.build.directory}/WEB-INF/lib"> 
       <fileset dir="src/main/lib"/> 
      </copy> 
      </tasks> 
     </configuration> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
+0

Mi intención no es crear un repositorio local. Quiero saber si hay alguna forma de usar maven para copiar este jar desde mi src o recurso o cualquier otra carpeta a la carpeta de destino – user118802

+0

ya tienes un repositorio local si estás usando Maven, no hay necesidad de crear uno. Está ubicado por defecto en ~/.m2/repository –

+0

@Rich, mi enfoque no está vinculado a la estructura del directorio de la caja, es incluso menos que su sugerencia antrun. $ {basedir} está definido por Mavens, por lo que solo está vinculado a la estructura de directorios del proyecto, ¿eso es todo por Maven? –

4

La forma correcta de hacer esto en Maven es instalarlo en un repositorio (remoto o local).

Sin embargo, hay circunstancias en las que el repositorio local es menos preferible. Por ejemplo, ejecuta Maven en muchas máquinas y no desea instalarlo manualmente.

Acabo de utilizar el anti-patrón de comprobación de JAR en el control de versiones en estos raros casos. Ni siquiera me molesto en instalarlo en el repositorio local porque agrega otro paso y hace otra copia del JAR. Solo uso el JAR directamente así,

  <dependency> 
        <groupId>local</groupId> 
        <artifactId>homeless-jar</artifactId> 
        <version>1.0</version> 
        <scope>system</scope> 
        <systemPath>${basedir}/lib/homeless.jar 
        </systemPath> 
      </dependency> 

EDITAR: The $ {basedir} está definido por Maven. Es el directorio base del proyecto Maven, donde está tu pom.xml. Mi ejemplo no fue claro. Ver este,

  <dependency> 
        <groupId>any-id</groupId> 
        <artifactId>any-name</artifactId> 
        <version>1.0</version> 
        <scope>system</scope> 
        <systemPath>${basedir}/src/main/lib/homeless.jar 
        </systemPath> 
      </dependency> 
+0

¿Cómo sé qué baseir es para mi proyecto? –

+0

Ver mis ediciones ................ –

Cuestiones relacionadas