2011-11-25 10 views
6

En la configuración de ejecución de eclipse, se le proporciona un conjunto de variables predeterminadas que puede usar en los argumentos de VM, como container_path y env_var.
Lo que quiero acceder es una variable classpath, M2_REPO, pero no veo la manera de hacerlo. Necesito especificar un javaagent en los argumentos de VM, que requiere una ruta a un archivo jar. Este archivo jar vive en el repositorio maven, pero no puedo encontrar una manera de especificar la ruta al repositorio maven utilizando la variable de classpath M2_REPO ya configurada (configurada en windows ->preferences ->java ->Build Path ->Classpath variable).
Lo que me gustaría hacer es usar esto como mis argumentos de VM pero no puedo porque classpath_var no es una variable real.Accediendo al valor de eclipse classpath variable M2_REPO en configuración de ejecución argumentos VM

-javaagent:${classpath_var:M2_REPO}/org/apache/openjpa/openjpa/2.1.0/openjpa-2.1.0.jar 

¿Hay alguna otra manera de acceder al valor de M2_REPO en argumentos de VM?

+0

Por si acaso alguien más repudia la pregunta como yo lo hice: '$ {env_var: VAR_NAME}' puede ser utilizado. Como mi repositorio está bajo '% M2_HOME%', esto funciona para mí: '-javaagent: $ {env_var: M2_HOME}/repository/org/apache/openjpa/openjpa/2.1.0/openjpa-2.1.0.jar' – xverges

Respuesta

4

Esto no es exactamente lo que solicitó, pero funcionó para nosotros como una forma de compartir una base de código y no tener rutas codificadas en nuestras configuraciones de ejecución. En lugar de usar una variable classpath, use una variable de sustitución de cadena (configurada en windows -> preferences -> run/debug -> String Substitution). Establézcalo en la misma ruta que el valor de M2_REPO y guarde. Utilizando el ejemplo anterior, si su sustitución de cadenas nombre de la variable fue también M2_REPO, el argumento de VM sería

-javaagent:${M2_REPO}/org/apache/openjpa/openjpa/2.1.0/openjpa-2.1.0.jar 

Para ser aún más claro, yo personalmente se acaba de crear una variable de sustitución de cadenas openjpa_2_1_0_agent que fue directamente a su tarro de APP abierto .

Cuestiones relacionadas