2010-08-24 14 views
10

En nuestro proyecto utilizamos configuraciones de lanzamiento de Eclipse que están bajo control de versión para ser compartidas con todos los desarrolladores. Ahora es necesario incluir un archivo externo en el classpath de un archivo de configuración de inicio. Afortunadamente, el archivo requerido se encuentra en el repositorio local de Maven de cada desarrollador.¿Cómo usar variables para la definición de classpath en las configuraciones de lanzamiento de Eclipse?

Ya descubrí que hay una variable classpath llamada M2_REPO que hace referencia al repositorio Maven local (que es válida para cualquier desarrollador).

Pero, ¿cómo usar esta variable en la siguiente definición de classpath para reemplazar la ruta absoluta?

<listAttribute key="org.eclipse.jdt.launching.CLASSPATH"> 
    ... 
    <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;runtimeClasspathEntry externalArchive=&quot;C:/Dokumente und Einstellungen/050967/.m2/repository/com/google/gwt/gwt-dev/2.0.3/gwt-dev-2.0.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;"/> 
    ... 
</listAttribute> 

O hay una manera de incluir una variable de entorno (por ejemplo, Windows %USERPROFILE% podría ayudar)?

Respuesta

20

Edite la configuración de inicio. Ir a la pestaña "classpath". Enfoque en "Entradas de usuario". Haga clic en el botón "Avanzado".

  • Para añadir una entrada basada en una variable ruta de clase, seleccione Agregar ruta de clase variable de y haga clic en OK. Se abrirá un cuadro de diálogo. Céntrese en M2_REPO y haga clic en el botón "Extender". Seleccione su archivo JAR.
  • Para añadir una entrada basado en un entorno variable del sistema , seleccione Agregar variable de cadena , y en el cuadro de edición a continuación, escriba: ${env_var:your-environment-variable-name}/path-to-jar. Por ejemplo, si la variable de entorno del sistema es MYVAR y el archivo JAR está por debajo de subdir/myfile.jar, debe escribir ${env_var:MYVAR}/subdir/myfile.jar.
+0

Genial. ¡Eso es! Gracias Isaac! – thommyslaw

+0

¿Es posible hacer lo mismo con la variable M2_REPO? Si hago lo que dice en el primer punto, no mantiene la expresión de la variable en el archivo de inicio sino que la reemplaza con la ruta completa del JAR que solo funciona en mi computadora. Editar el archivo a mano tampoco es una solución porque Eclipse también agrega mi ruta en el primer lanzamiento. ¿Hay alguna forma de evitar esto? Formulo una nueva pregunta a partir de esto. – NagyI

+0

Aquí está: http: // stackoverflow.com/questions/18897954/how-to-keep-m2-repo-variable-dynamic-in-aspect-path-of-an-eclipse-java-aspectj-r – NagyI

0

Puede cargar ese valor en maven properties.

Maven almacena la ruta del repositorio en la propiedad maven.repo.local.

Coloque ${maven.repo.local} en su archivo de configuración.

<listAttribute key="org.eclipse.jdt.launching.CLASSPATH"> 
    ... 
    <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;runtimeClasspathEntry externalArchive=&quot;${${maven.repo.local}}/com/google/gwt/gwt-dev/2.0.3/gwt-dev-2.0.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;"/> 
    ... 
</listAttribute> 

Entonces configuración filtering en pom.xml para su archivo de configuración para ${maven.repo.local} será reemplazado con el valor de la propiedad.

+1

Desafortunadamente eso no funciona. Al intentar ejecutar mi archivo de inicio desde el menú "Ejecutar ..." de Eclipse aparece un mensaje de error como "El archivo $ {$ {maven.repo.local}}/com/google/... no existe". Obviamente, la variable no se resuelve. ¿Alguna otra idea? – thommyslaw

Cuestiones relacionadas