java - artefact - Convertir el Proyecto Eclipse Existente al Proyecto Maven
maven group id artefact (9)
Mi pregunta es, ¿hay un asistente o un importador automático para convertir un proyecto existente de Eclipse Java a un proyecto de Maven, usando el complemento de Maven?
Por lo que sé, no hay nada que convierta automáticamente un proyecto de Eclipse en un proyecto de Maven (es decir, modifique el diseño, cree un POM, "genere" y lo alimente con metadatos, detecte bibliotecas y sus versiones para agregarlas al POM). , etc). Eclipse simplemente no tiene suficientes metadatos para hacer esto posible (este es precisamente el punto de la POM) y / o para producir un resultado decente.
O debería crear un nuevo proyecto de Maven y copiar manualmente todos los archivos de origen, librerías, etc.
Esa sería la mejor opción en mi opinión. Cree un proyecto de Maven, copie / mueva fuentes, recursos, pruebas, recursos de prueba en sus respectivos directorios, declare dependencias, etc.
Para un proyecto en el trabajo, estamos considerando usar el complemento Maven para Eclipse para automatizar nuestras compilaciones. En este momento, el procedimiento es mucho más complicado de lo que debería ser, y esperamos que Maven simplifique las cosas a una compilación de un solo clic.
Mi pregunta es, ¿hay un asistente o un importador automático para convertir un proyecto existente de Eclipse Java a un proyecto de Maven, usando el complemento de Maven? O debería crear un nuevo proyecto de Maven y copiar manualmente todos los archivos de origen, librerías, etc.
Comience desde m2e 0.13.0 (si no es anterior a), puede convertir un proyecto Java al proyecto Maven desde el menú contextual. Aquí es cómo:
- Haga clic derecho en el proyecto Java para abrir el menú contextual
- Seleccione Configurar> Convertir a proyecto Maven
Aquí están los pasos detallados con capturas de pantalla.
Es necesario porque, más o menos, cuando importamos un proyecto desde git, no es un proyecto experto, por lo que las dependencias de Maven no están en la ruta de compilación.
Esto es lo que he hecho para convertir un proyecto general en un proyecto experto.
proyecto general -> proyecto java, haga clic derecho en el proyecto, propiedades-> facetas del proyecto, haga clic en "java". Este paso convertirá un proyecto general en un proyecto java.
proyecto java -> proyecto maven clic derecho proyecto, configurar -> convertir a proyecto maven En este momento, las dependencias de maven aún no están en la ruta de compilación. propiedades del proyecto, crear ruta, agregar biblioteca, agregar dependencias
Y espere unos segundos, cuando se carguen las dependencias, ¡el proyecto está listo!
Existe un programa de línea de comandos para convertir cualquier proyecto Java en un proyecto SBT / Maven.
Resuelve todos los archivos jar y trata de averiguar la versión correcta basada en la suma de comprobación SHA, classpath o nombre de archivo. Luego trata de compilar las fuentes hasta que encuentra una configuración de trabajo. También se pueden dar tareas personalizadas para ejecutar la configuración de dependencia.
UniversalResolver 1.0
Usage: UniversalResolver [options]
-s <srcpath1>,<srcpath2>... | --srcPaths <srcpath1>,<srcpath2>...
required src paths to include
-j <jar1>,<jar2>... | --jars <jar1>,<jar2>...
required jars/jar paths to include
-t /path/To/Dir | --testDirectory /path/To/Dir
required directory where test configurations will be stored
-a <task1>,<task2>... | --sbt-tasks <task1>,<task2>...
SBT Tasks to be executed. i.e. compile
-d /path/To/dependencyFile.json | --dependencyFile /path/To/dependencyFile.json
optional file where the dependency buffer will be stored
-l | --search
load and search dependencies from remote repositories
-g | --generateConfigurations
generate dependency configurations
-c <value> | --findByNameCount <value>
number of dependencies to resolve by class name per jar
Haga clic con el botón derecho en Nombre del proyecto> Configurar> Convertir a proyecto Maven> haga clic en finalizar. Aquí agregará algunas dependencias para descargar y agregar el archivo jar esperado.
Esto creará un archivo pom.xml generado automáticamente. Abre ese archivo en formato xml en tu editor de eclipse. Después de crear la etiqueta ( </build>
), agregue las dependencias que puede copiar del sitio web de Maven y agréguelas allí. Ahora eres bueno para irte. Estas dependencias agregarán automáticamente sus archivos jar requeridos.
La respuesta de Chengdong es correcta, debe usar Configure>Convert to Maven Project
. Sin embargo, debo agregar que el proceso de conversión ha mejorado mucho desde que m2e 0.13.0: m2e 1.1+ y m2e-wtp 0.16.0+ ahora pueden convertir las configuraciones de eclipse existentes en la configuración del complemento Maven .
En cuanto a la cuestión de la conversión de dependencia, puede probar la función de integración Maven de JBoss Tools (JBT) 4.0, que contiene un asistente de conversión experimental, conectado al proceso de conversión de m2e: http://docs.jboss.org/tools/whatsnew/maven/maven-news-4.0.0.Beta1.html .
No pretende ser la solución definitiva (nada puede), ya que debería ser de gran ayuda para iniciar el proceso de conversión de Maven.
Además, para su información, aquí hay algunas ideas para mejorar el proceso de conversión de m2e , la refactorización para usar un diseño de Maven probablemente se implementará en el futuro.
JBT 4.0 (requiere Eclipse JavaEE Juno) se puede instalar desde http://download.jboss.org/jbosstools/updates/stable/juno/ o desde Eclipse Marketplace
Para convertir a Gradle es análogo a Maven:
Haga clic derecho en Proyecto -> submenú Configurar -> Convertir a Proyecto Gradle (STS)
Si solo desea crear un POM predeterminado y habilitar las características de m2eclipse: asumo que actualmente no tiene una configuración de compilación automatizada alternativa que intenta importar, y supongo que está hablando del complemento de m2eclipse.
El complemento m2eclipse proporciona una opción de clic derecho en un proyecto para agregar este pom.xml predeterminado:
Nuevas versiones de M2E
Haga clic derecho en Proyecto -> submenú Configurar -> Convertir a Proyecto Maven
Versiones M2E más antiguas
Haga clic con el botón derecho en Proyecto -> submenú Maven -> Habilitar administración de dependencias.
Eso hará lo necesario para habilitar el complemento para ese proyecto.
Para responder '' ¿hay un importador automático o asistente? '': No que yo sepa. El uso de la opción anterior le permitirá habilitar el complemento m2eclipse para su proyecto existente evitando la copia manual. Aún necesitarás configurar las dependencias y otras cosas que necesitas para construirte tú mismo.
Tenía el mismo problema y quería mavenizar el espacio de trabajo de eclipse completo que contenía alrededor de 60 proyectos de Eclipse. Hacerlo manualmente requería mucho tiempo y las opciones alternativas no eran tan viables. Para resolver el problema, finalmente creé un proyecto llamado eclipse-to-maven en github. Como eclipse no tiene toda la información necesaria sobre las dependencias, hace lo siguiente:
Basado en los elementos XML
<classpathentry/>
en el archivo .classpath, crea las dependencias en otro proyecto, identifica el archivo jar de la biblioteca y en base a su nombre (por ejemplo jakarta-oro-2.0.8.jar) identifica su versión. Actualmente,artifactId
ygroupId
son los mismos que no pude encontrar algo que me pudiera devolver el GroupId de Maven de la dependencia basada enartifactId
. Aunque esta no es una solución perfecta, proporciona una buena base para acelerar la mavenización.Mueve todas las carpetas de origen de acuerdo con la convención de Maven (como
src/main/java
)Como los proyectos de Eclipse que tienen nombres con espacios son difíciles de manejar en el entorno Linux / Unix, también les cambia el nombre por nombres sin espacios.
Los archivos pom.xml resultantes contienen las dependencias y la estructura básica de pom. Tienes que agregar los complementos requeridos de Maven manualmente.