JDK tools.jar como dependencia maven

Me gustaría poner JDK tools.jar como comstackción de dependencia. Encontré algunos ejemplos que indican usar la propiedad systemPath de la siguiente manera:

 com.sun tools system ${java.home}/../lib/tools.jar  

El problema es que la ruta no es correcta para Mac Os X (sin embargo, es correcta para Windows y Linux). Para ello, la ruta correcta es $ {java.home} /../ Classes / classes.jar .

Estoy buscando una forma de definir una propiedad maven de modo que si el sistema se detecta como Mac OS X, el valor se establece en $ {java.home} /../ Classes / classes.jar , de lo contrario se establece en $ {java.home} /../ lib / tools.jar (como es posible hacer con ANT). ¿Alguien tiene una idea?

    Para eso sirven los perfiles, extraer la ruta a una propiedad, configurar los perfiles para Windows, OSX, etc., y definir los valores de propiedad de forma adecuada.

    Aquí está la página del documento que analiza los perfiles de los sistemas operativos: Maven Local Settings Model

    Debería parecer algo como esto:

        windows_profile   Windows    ${java.home}/../lib/tools.jar    osx_profile   mac    ${java.home}/../Classes/classes.jar    

    Gracias por presentarme los perfiles de maven.

    He utilizado el perfil como se menciona arriba y activando un perfil basado en la presencia del archivo deseado:

       default-profile  true  ${java.home}/../lib/tools.jar    ${java.home}/../lib/tools.jar    mac-profile  false  ${java.home}/../Classes/classes.jar    ${java.home}/../Classes/classes.jar    

    Publiqué esta respuesta para resaltar un error en la publicación anterior: la sección de propiedad solo se puede usar en la sección de activación para activar un perfil en función de la existencia de la propiedad especificada. Para definir una propiedad, la sección de propiedades debe usarse como arriba.

    Hola, sé que ustedes son inteligentes, pero me llevó un par de días darme cuenta de que la respuesta no está completa: tanto el perfil como la dependencia son necesarios. Espero que nadie pierda el tiempo en esto de nuevo. Por favor vea mi código completo a continuación:

       osx_profile  false  mac    ${java.home}/../Classes/classes.jar    com.sun tools 1.6.0 system ${toolsjar}     

    De alguna manera, el eclipse en windows falla al recoger {java.home}. Entonces, tuve que configurar JAVA_HOME en lugar de java.home. JAVA_HOME se configuró en Ejecutar-> Configuraciones de ejecución-> Entorno. Esto funcionó para mí con JDK estándar (no Apple JDK).

       windows-profile  true  ${JAVA_HOME}/lib/tools.jar    ${JAVA_HOME}/lib/tools.jar    mac-profile  false  ${java.home}/../lib/tools.jar    ${java.home}/../lib/tools.jar      jdk.tools jdk.tools jdk1.8.0 system ${toolsjar}   

    El comentario de Edward es correcto.

    Necesita el perfil Y necesita la dependency fuera del bloque de profiles . El perfil solo determina qué valor va a obtener ${toolsjar} .

       jdk.tools jdk.tools jdk1.8.0 system ${toolsjar}   

    mi solución:

    1. poner las herramientas de Sun.jar en $JAVA_HOME/lib
    2. hacer un enlace simbólico en $JAVA_HOME/.. named lib donde target será $JAVA_HOME/lib