M2E i Maven generował foldery źródłowe jako foldery źródłowe eclipse

Mam projekt maven w eclipse i mam cele Mavena, które uruchamiają procesory adnotacji do generowania kodu. Folder wyjściowy dla tego kodu to target/generated-sources / apt.

Aby eclipse mógł zobaczyć wygenerowany kod muszę dodać target/generated-sources / apt jako folder źródłowy do projektu eclipse.

Jest to spowodowane tym, że jest to błąd typu "Maven Configuration Problem" mówiący

Konfiguracja projektu nie jest aktualna z pom.xml. Bieg projekt aktualizacja konfiguracji

Myślę, że rozumiem, dlaczego tak jest, ponieważ eclipse ma inny zestaw folderów źródłowych niż zestaw Mavena. Ale potrzebuję tego innego zestawu, ponieważ potrzebuję eclipse, aby móc zobaczyć wygenerowane foldery źródłowe...

Podczas tworzenia czystego Mavena, te foldery źródłowe zostaną włączone do kompilacji przez Mavena.

Btw, zaktualizowałem do oficjalnego wydania eclipse wtyczki Maven eclipse, m2e 1.0-co kiedyś było m2eclipse. Chciałbym aby zobaczyć, czy mogę znaleźć obejście / rozwiązanie tego z wtyczką M2E, zanim będę musiał wrócić do starej wersji m2eclipse.

Author: Michael Wiles, 2011-08-23

11 answers

Musisz załączyć katalog źródłowy za pomocą build-helper-plugin .

Like so:

 <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>${project.build.directory}/generated-sources/java/</source>
                </sources>
            </configuration>
        </execution>
    </executions>
 </plugin>

Będziesz również musiał:

 101
Author: Michael-O,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-28 09:34:49

Kliknij prawym przyciskiem myszy komunikat o błędzie:

Konfiguracja projektu nie jest aktualna z pom.XML Run project aktualizacja konfiguracji

W widoku problemy Wybierz Quick Fix i kliknij Finish, aby wybrać domyślnązaktualizuj konfigurację projektu . To go naprawia.

 79
Author: peter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-31 12:52:15

Po przejściu na nowe wersje m2e / maven / apt,... miałem builderrors z powodu zduplikowanych plików, spowodowanych dodaną ścieżką buildpath przez buildhelpera, więc musiałem usunąć foldery generowane przez apt z buildhelpera.

Aby naprawić Problem w Eclipse, nie dodając "apt-generated" - folder poprzez aktualizację konfiguracji Mavena w M2E, napisałem wtyczkę M2E, aby rozwiązać ten problem. Dodaje outputDirectories skonfigurowane w maven-apt-plugin do buildpath Projekt.

Https://apt-m2e.googlecode.com

 4
Author: Stefan Wo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-24 14:06:04

W m2e 1.0 obsługa wtyczek Mavena uległa zmianie. Być może brakuje Ci konkretnego rozszerzenia m2e dla wtyczki generującej kod. Oto cała Dokumentacja, którą udało mi się znaleźć.

Ten raport o błędzie może być również istotny.

 3
Author: Nicola Musatti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-01 08:59:36

Https://bugs.eclipse.org/bugs/show_bug.cgi?id=350081

Wniosek o CXF JIRA (zobacz 1) aby dodać mapowanie cyklu życia w samej wtyczce CXF-codegen. Wymagałoby to m2e 1.1, ale uważam, że jest to lepsze podejście niż posiadanie złączy zbudowanych poza projektem cxf, zakładając, że API mapowania cyklu życia zmieniłoby się rzadziej niż CXF-codegen-plugin i cxf.

 1
Author: Mike Grandmaison,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-10 23:33:19

Możesz również użyć złącza buildhelper m2e dostępnego w katalogu discovery. Używam Eclipse 3.7

 0
Author: Cédric Vidal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-23 08:00:42

Eclipse Java EE IDE dla Web Developerów. Wersja: Juno Service Release 1

mvn archetype:generate \
   -DarchetypeGroupId=org.codehaus.mojo \
   -DarchetypeArtifactId=gwt-maven-plugin \
   -DarchetypeVersion=2.5.0

mvn clean install
Działa idealnie.

Ale w eclipse mam ten sam błąd na klasie Asinc.

Po prostu naciśnij F5 w projekcie. Napraw ten problem.

 0
Author: burtsevyg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-29 08:38:45

To było to, co znalazłem, że działa dobrze przy użyciu spring 3.1.1, który ma wersję 3.0.6, jak również w nim. Jak już ustawiłem pluginy i umieściłem w odpowiednim obszarze pom i włączyłem argline i endorseddirs, aby Źródła Javy umieścić w folderze target/generated-sources / cxf to Maven wygenerował źródła ok.

....

 <properties>...

   <dependencyManagement>
      <dependencies>.....
   </dependencyManagement>

<dependencies>
   <dependency>....

</dependencies>



<!-- *************************** Build process ************************************* -->
<build>
    <finalName>eSurety</finalName>
    <plugins>
        <!-- Force Java 6 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <!-- Deployent on AS from console
        <plugin>
            <groupId>org.jboss.as.plugins</groupId>
            <artifactId>jboss-as-maven-plugin</artifactId>
            <version>${version.jboss.as.maven.plugin}</version>
        </plugin>
        -->

        <!-- wildbill added tomcat plugin -->
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.0</version>              
        </plugin>

        <!-- Surefire plugin before 2.9 version is buggy. No need to declare here,
              it's being referenced below w/ the version
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.12</version>
        </plugin>
        -->

        <!-- developer added these -->   
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <compilerArguments>
                    <endorseddirs>target/generated-sources/cxf</endorseddirs>
                </compilerArguments>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.12</version>
            <configuration>
                <forkMode>once</forkMode>
                <argLine>-Djava.endorsed.dirs=target/generated-sources/cxf</argLine>
            </configuration>
        </plugin>           
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <compilerArguments>
                    <endorseddirs>target/generated-sources/cxf</endorseddirs>
                </compilerArguments>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <forkMode>once</forkMode>
                <argLine>-Djava.endorsed.dirs=target/generated-sources/cxf</argLine>
            </configuration>
        </plugin>                       
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>                       
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                        <version>2.2</version>
                    </artifactItem>
                    <artifactItem>
                        <groupId>javax.xml.ws</groupId>
                        <artifactId>jaxws-api</artifactId>
                        <version>2.2</version>
                    </artifactItem>
                </artifactItems>
                <outputDirectory>target/generated-sources/cxf</outputDirectory>
            </configuration>                      
        </plugin>                                                 
    </plugins>
</build>



<!-- *********************** Profiles ************************************ -->
<profiles>
    <profile>
        <!-- When built in OpenShift the 'openshift' profile will be 
            used when invoking mvn. -->
        <!-- Use this profile for any OpenShift specific customization 
            your app will need. -->
        <!-- By default that is to put the resulting archive into the 
            'deployments' folder. -->
        <!-- http://maven.apache.org/guides/mini/guide-building-for-different-environments.html -->
        <id>projName</id>
        <build>
            <plugins>                                                   
                <plugin>
                    <groupId>org.apache.cxf</groupId>
                    <artifactId>cxf-codegen-plugin</artifactId>
                    <version>2.5.2</version>                        
                    <executions>
                        <execution>
                            <id>process-sources</id>
                            <phase>generate-sources</phase>                                                                                               
                            <configuration>
                                <fork>once</fork>
                                <additionalJvmArgs>-Djava.endorsed.dirs=target/generated-sources/cxf</additionalJvmArgs>                                          
                            </configuration>
                            <goals>                             
                                <goal>wsdl2java</goal>
                            </goals>
                        </execution>
                    </executions>                       
                    <dependencies>
                        <dependency>
                           <groupId>com.sun.xml.bind</groupId>
                           <artifactId>jaxb-impl</artifactId>
                           <version>2.2</version>
                        </dependency>
                        <dependency>
                           <groupId>com.sun.xml.bind</groupId>
                           <artifactId>jaxb-xjc</artifactId>
                           <version>2.2</version>
                        </dependency>
                     </dependencies>
                </plugin>

                <!-- Actual war created in default target dir -->
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.2</version>                                               
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

Jeśli twój folder wsdl znajduje się w ${basedir} / src / main / resources to znajdzie go automatycznie

Hope this pomaga! ~ wildbill

 0
Author: WildBill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-20 16:08:35

W przypadku, gdy z jakiegoś powodu nie można użyć kompilacji helper plugin najprostszym sposobem (choć nie tak wygodne i nieco żmudne) znalazłem do czynienia z tym jest:

  1. oddzielenie wygenerowanego kodu źródłowego do własnego projektu lub modułu podrzędnego.
  2. będziesz chciał, aby ten projekt był głównie zamknięty lub nie zaimportowany do Eclipse podczas pracy nad projektem nadrzędnym.
  3. w projekcie nadrzędnym, który potrzebuje wygenerowanego kodu upewnij się, że teraz zależy od wygenerowanego projekt kodu źródłowego poprzez zależność Maven pom.
  4. Kiedy musisz zaktualizować wygenerowany kod przejdź do wygenerowanego projektu kodu i uruchom mvn install. Teraz odśwież projekt nadrzędny klikając prawym przyciskiem myszy i wybierając Maven- > Update Project...

Ogólnie działa to dobrze w przypadku projektów, które używają półstatycznego źródła do generowania kodu, takiego jak Soap WSDLs (Apache CXF) lub kod generowany z bazy danych (jOOQ). Dla APT i innych AspectJ-like-code nie działa tak dobrze, ponieważ często edytujesz źródło.

 0
Author: Adam Gent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-12 16:36:35

Konfiguracja wtyczki build helper zadziałała dla nas.

Należy jednak pamiętać, że folder docelowy zawsze musi być równy konfiguracji wtyczki używanej do samego przetwarzania adnotacji.

Na przykład wtyczka maven-processor-plugin używa folderu docelowego ${project.buduj.katalog} / generated-sources / apt jako domyślny. jeśli chcesz innego miejsca docelowego dla wygenerowanych plików źródłowych, możesz ustawić go za pomocą znacznika, jak pokazano poniżej.

<plugin>
<groupId>org.bsc.maven</groupId>
                <artifactId>maven-processor-plugin</artifactId>
                <version>2.1.1</version>
                <executions>
                    <execution>
                        <id>process</id>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <phase>process-sources</phase>
                        <configuration>
                            <defaultOutputDirectory>apt_generated</defaultOutputDirectory>
                            <processors>
                                <processor>com.any.processor.invoker</processor>
                            </processors>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
 -1
Author: Hannes Kogler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-13 13:28:35

Oto rozwiązanie

  1. Otwórz Widok Znacznika (Okno > Pokaż Widok
  2. Kliknij prawym przyciskiem myszy komunikat o błędzie
  3. Wybierz Quick Fix
  4. Kliknij Zakończ
 -3
Author: imesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-21 06:12:30