2008-11-22 17 views

Respuesta

6

Puede utilizar el settings.xml para forzar a todos experto construye que se ejecuta en el equipo local para utilizar un proxy también experto instalado localmente. Ahorrándose y el tiempo de la red.

<settings xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
        http://maven.apache.org/xsd/settings-1.0.0.xsd"> 
    <profile> 
     <id>localcacheproxies</id> 

     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 

     <repositories> 
      <repository> 
       <id>localCacheProxy</id> 
       <url>http://my-local-proxy.com/maven-proxy</url> 
      </repository> 
     </repositories> 
    </profile> 
</profiles> 

Tenga en cuenta que los encabezados de espacio de nombres en este settings.xml también da una intelisense decente en comparación con otros ejemplos publicados aquí. (cree en su directorio home carpeta .m2 en windows, linux y mac y todos los os'es)

1

Con maven-dependency-plugin es posible resolver conflictos de dependencia y problemas de dependencia cíclica.

Añadir a su pom.xml:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
</plugin> 

A continuación, ejecute la dependencia mvn: resolver la dependencia o mvn: build-ruta de clase para probarlo.

Más sobre el plugin de dependencia: http://maven.apache.org/plugins/maven-dependency-plugin/howto.html

+0

Estoy bastante seguro de que no necesita editar su pom.xml para esto. – lindelof

+0

Indee, maven descarga automáticamente cualquier complemento si el nombre coincide. Sin embargo, es una buena práctica agregarlo al pom e incluir especialmente una versión específica (que olvidé) para evitar sorpresas con diferentes entornos más adelante. – Kuukage

+0

dependency: tree es a menudo un salvavidas cuando se trata de proyectos de módulos múltiples – sal

4

Eche un vistazo a la dependencia: analice también.

1
  1. herencia proyecto
  2. agregación proyecto
  3. montaje: el montaje
  4. informes (findbugs, Checkstyle, trébol, PMD, etc)
2

A veces hay un archivo que tiene que contener algún valor que solo puede descubrirse en tiempo de compilación. Tal vez tenga una clase de Java que verifique si el período de evaluación está activo y usted define ese período como "treinta días después de compilar esta compilación". Necesita una forma de inyectar la fecha actual, o alguna otra propiedad, directamente en la compilación.

Maven tiene una función genial y oculta llamada filtrado (Documentation here). Con el filtrado, puede pedir Maven para buscar patrones en ciertos archivos de origen y reemplazarlos con algún valor, y es tan fácil de activar ya que esto:

<build> 
    <resources> 
     <resource> 
     <directory>src/main/resources</directory> 
     <filtering>true</filtering> 
     </resource> 
    </resources> 
    </build> 

¿Qué puede pegarse en el filtro? Cualquier variable de entorno, la mayoría de los valores en el archivo pom e información sobre el compilador de Java. Ahora, si cambias el número de versión en Maven, no tienes que buscar el archivo whatever.properties y actualizar tu versión allí también. Puedes modificarlo en Maven y listo.

+0

"Maven tiene una característica oculta y fresca llamada filtrado (Documentación aquí)." Lol. Está oculto y documentado. –

+0

Ocultos y documentados no son mutuamente excluyentes.Si no sabe que existe, no pensaría en verificar la documentación. Por lo tanto, solo se puede descubrir, y ¿qué se descubre? Cosas ocultas Es como bloques etiquetados en Java. Totalmente documentado. En gran parte desconocido. –

Cuestiones relacionadas