Además de la src/main/java, voy a añadir un src/bootstrap directorio que quiero incluir en mi proceso de construcción, en otras palabras, quiero maven para compilar e incluir las fuentes que hay en mi generación. Cómo!?

  • Pregunta Simple: ¿por Qué no se mueve el código fuente en el directorio src/main/java ? O crear un proyecto de maven/módulo que contiene el código y lo definen como la dependencia.
  • En mi caso debo agregar generado fuentes de la carpeta, que prefiero residen en el interior de destino.
  • Alternativamente, uno puede querer a cabo la integración de las pruebas en directorios distintos src/{main,test}/ como dice aquí
InformationsquelleAutor chrisapotek | 2012-03-17

5 Comentarios

  1. 129

    Puede utilizar el Construir Plugin Auxiliar, e.g:

    <project>
      ...
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.7</version>
            <executions>
              <execution>
                <id>add-source</id>
                <phase>generate-sources</phase>
                <goals>
                  <goal>add-source</goal>
                </goals>
                <configuration>
                  <sources>
                    <source>some directory</source>
                    ...
                  </sources>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </project>
    • ¿Eclipse realmente reconocer a una carpeta como uno de los buildpaths para cualquier persona? ‘cos no para mí. FWIW, yo uso m2e para importar el proyecto.
    • Gran respuesta, sólo para aclarar, debe reemplazar el maven-compilador-plugin con las líneas de arriba…
    • Trabaja en IntelliJ así.
    • Así que si (en Eclipse de Luna) he añadido (vinculados) en mi BuildPath (haciendo clic en el botón derecho del ratón sobre mi MavenProject) una carpeta de origen donde su directorio «/Usuarios/Minombre/Desktop/source», tengo que escribir <source>/Users/MyName/Desktop/source<source> ?? Y se va todo a la derecha?
    • No sé por qué, pero simplemente he eliminado los enlaces de la fuente y volver a agregar en la construcción de camino y todo ha salido bien. Si tengo algún otro problema, voy a publicar aquí. Gracias de todos modos 🙂
    • La pregunta es acerca de Maven, que no tiene conocimiento de (ni debe) de la IDE (por ejemplo, eclipse). Construye debe trabajar en Jenkins o lo que sea construir servidor sin ningún IDE-referencias específicas. El IDE debe invocar Maven (herramienta de construcción) y por lo tanto relacionados con el IDE preguntas probablemente debería ser llevado a cabo por separado.
    • Eclipse me pidió instalar un plugin para m2e, la acumulación de ayudante de conector. Yo lo hice, y el ciclo de vida de error se ha ido.
    • Esto me obliga a pasar a java 7, esta solución no funciona para java 6 ? O me estoy perdiendo algo ?
    • ¿hay alguna solución sin tener que instalar un plugin ?
    • Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:build-helper-maven-plugin:1.7:add-source (execution: add-source, phase: generate-sources) recibiendo este error
    • Puede alguien explicarme cómo esto es mejor que recursiva hacer? xD

  2. 34

    NOTA: Esta solución sólo mover los archivos fuente de java para el destino/clases directory y no va a compilar las fuentes.


    Actualización de la pom.xml como –

    <project>   
     ....
        <build>
          <resources>
            <resource>
              <directory>src/main/config</directory>
            </resource>
          </resources>
         ...
        </build>
    ...
    </project>
    • NetBeans recogió como un encanto 🙂
    • Parece usted necesita quitar el ** exclusión de la carpeta añadida en el Eclipse build path, aunque 🙁
    • puede usted explicar por favor?
    • En Eclipse, cuando se agrega un recurso como este, es necesario eliminar la ** exclusión de la construcción de camino por el directorio para reconocer las fuentes.
    • No funciona con IntelliJ, va a ver <resource> como «Recurso» de la carpeta pero no se como «Fuente» de la carpeta, por ejemplo, no compila archivos fuente de Java dentro de ellos.
    • No sabía que el POM es dependiente de la IDE
    • Me estaba refiriendo a IntelliJ del soporte de Maven que lee pom archivos automáticamente y establece sus proyectos de configuración en consecuencia – es estrictamente ver <resource> carpetas como directorios de recursos, no de las fuentes.
    • Esta solución se acaba de mover los archivos fuente de java para el destino/clases de directorio y será no compilar las fuentes
    • Bajo qué etiqueta debe el build etiqueta se encuentra?
    • build generalmente viene después de project como se muestra en la respuesta @AlikElzin-kilaka

  3. 11

    http://maven.apache.org/guides/mini/guide-using-one-source-directory.html

    <build>
    <sourceDirectory>../src/main/java</sourceDirectory>

    ver también

    Maven compilar con múltiples directorios src

    • Esto anula el valor predeterminado src/main/java directorio. Si desea que varios directorios, usted tiene que especificar el valor predeterminado uno así.
    • La pregunta es cómo agregar varios directorios de origen y están proponiendo un método para agregar sólo un directorio de origen, que es lo contrario de lo que se le pide.
  4. 1

    Con los últimos Maven versiones (3) y la reciente versión de maven compilador plugin (3.7.0), me doy cuenta de que la adición de una carpeta de origen con el build-helper-maven-plugin no es necesario si la carpeta que contiene el código fuente para agregar en la construcción se encuentra en la target carpeta o subcarpeta de la misma.

    Parece que el compilador plugin de maven compila cualquier código fuente de java encuentra dentro de esta carpeta cualquiera que sea el directorio que los contiene.

    Por ejemplo, tener algunos (generado o no) de código fuente en target/a, target/generated-source/foo serán compilados y añadidos en el outputDirectory : target/classes.

  5. 0

    Usted puede agregar los directorios de su proceso de construcción como:

        ...
       <resources>
         <resource>
           <directory>src/bootstrap</directory>
         </resource>
       </resources>
       ...

    La src/main/java es la ruta de acceso predeterminada que no es necesario ser mencionados en el pom.xml

    • ¿Por qué los downvotes la gente? Básicamente la misma respuesta como saiky0 (que ha upvotes) pero antes?
    • porque no es correcto. La adición de un directorio de recursos de añadir recursos (archivos copiados a target/classes, pero no compilado). Esta pregunta es acerca de la adición de una fuente de directorio que contiene los archivos que será compilado en target/classes, no se copian.

Dejar respuesta

Please enter your comment!
Please enter your name here