Saya memiliki proyek maven di eclipse dan memiliki tujuan maven yang menjalankan pemroses anotasi untuk menghasilkan kode. Folder keluaran untuk kode ini adalah target / generated-sources / apt.
Agar eclipse melihat kode yang dihasilkan ini, saya perlu menambahkan target / generated-sources / apt sebagai folder sumber ke proyek eclipse.
Namun, ini menyebabkan ada kesalahan jenis "Masalah Konfigurasi Maven" yang mengatakan
Konfigurasi proyek tidak up-to-date dengan pom.xml. Jalankan pembaruan konfigurasi proyek
Saya rasa saya mengerti mengapa hal ini terjadi karena gerhana memiliki kumpulan folder sumber yang berbeda dengan kumpulan maven. Tetapi saya memerlukan set yang berbeda ini, karena saya perlu gerhana agar dapat melihat folder sumber yang dihasilkan ...
Saat melakukan maven murni, folder sumber ini akan disertakan dalam build, oleh maven.
btw, saya telah mengupgrade ke rilis gerhana resmi dari plugin gerhana maven, m2e 1.0 - yang dulunya adalah m2eclipse. Saya ingin melihat apakah saya dapat menemukan solusi / solusi untuk ini dengan plugin m2e sebelum saya harus kembali ke versi m2eclipse lama.
m2e connector for build-helper-maven-plugin
dipasang di Eclipsebuild-helper-maven-plugin
dengan<version>
ditetapkan sebagai3.2.0
(terbaru seperti tulisan), tidak ada perlu menggunakan Apt M2E Connector. Saat ini mengerjakan Eclipse IDE 2020-06, menggunakan Maven 3.6.3 yang disematkan di Eclipse, dan masalah kami dengan folder sumber yang memiliki pengecualian (**) hilang setelah mencoba menambahkan jalur direktori folder sumber. Sekarang, semua inklusi memiliki (** / *. java) di dalamnya.Klik kanan pesan kesalahan:
di Problems View dan pilih Quick Fix dan klik Finish untuk memilih konfigurasi default Update project . Ini memperbaikinya.
sumber
Setelah beralih ke versi baru m2e / maven / apt, ... saya mengalami error build karena file duplikat, yang disebabkan oleh buildpath yang ditambahkan oleh buildhelper, jadi saya perlu menghapus "apt-generated" -Folders dari buildhelper.
Untuk memperbaiki Masalah di Eclipse, tidak menambahkan folder "apt-generated" melalui Update Maven Configuration di M2E, saya telah menulis Plugin M2E untuk memperbaiki masalah ini. Ia menambahkan outputDirectories yang dikonfigurasi di maven-apt-plugin ke buildpath Proyek.
https://apt-m2e.googlecode.com
sumber
Di m2e 1.0, penanganan plugin Maven telah berubah. Anda mungkin kekurangan ekstensi m2e khusus untuk plugin pembuat kode Anda. Ini semua dokumentasi yang berhasil saya temukan.
Laporan bug ini mungkin juga relevan.
sumber
https://bugs.eclipse.org/bugs/show_bug.cgi?id=350081
meminta pada CXF JIRA (lihat 1 ) untuk menambahkan pemetaan siklus hidup di cxf-codegen-plugin itu sendiri. Ini akan membutuhkan m2e 1.1 tetapi saya percaya ini adalah pendekatan yang lebih baik daripada memiliki konektor yang dibangun di luar proyek cxf, dengan asumsi bahwa API pemetaan siklus hidup akan berubah lebih jarang daripada cxf-codegen-plugin dan cxf.
sumber
Anda juga dapat menggunakan konektor m2e buildhelper yang tersedia di katalog penemuan. Saya menggunakan Eclipse 3.7
sumber
Eclipse Java EE IDE untuk Pengembang Web. Versi: Juno Service Release 1
bekerja dengan sempurna.
Tapi di gerhana saya memiliki kesalahan yang sama pada kelas Asinc.
Cukup tekan F5 pada proyek. Perbaiki masalah ini.
sumber
Ini adalah apa yang menurut saya berfungsi dengan baik menggunakan pegas 3.1.1 yang memiliki versi 3.0.6 juga di dalamnya. Setelah saya mendapatkan pengaturan plugin dan memasukkannya ke area pom yang benar dan memasukkan argline dan endorseddirs agar sumber java dimasukkan ke folder target / generated-sources / cxf kemudian maven menghasilkan sumber 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>
Jika folder wsdl Anda ada di $ {basedir} / src / main / resources, folder itu akan menemukannya secara otomatis
Semoga ini membantu! ~ wildbill
sumber
Dalam kasus karena alasan tertentu Anda tidak dapat menggunakan plugin build helper dengan cara termudah (meskipun tidak semudah dan agak membosankan) yang saya temukan untuk mengatasinya adalah:
mvn install
. Sekarang segarkan proyek induk dengan mengklik kanan dan memilih Maven-> Perbarui Proyek ...Ini umumnya berfungsi dengan baik untuk proyek yang menggunakan sumber semi statis untuk pembuatan kode seperti SOAP WSDL (Apache CXF) atau kode yang dihasilkan dari database (jOOQ). Untuk APT dan kode serupa AspectJ lainnya, ini tidak berfungsi dengan baik karena Anda sering mengedit sumbernya.
sumber
konfigurasi ke plugin build helper berhasil untuk kami.
namun perlu diketahui, bahwa folder tujuan harus selalu sama dengan konfigurasi plugin yang Anda gunakan untuk pemrosesan anotasi itu sendiri.
misalnya maven-processor-plugin menggunakan folder target $ {project.build.directory} / generated-sources / apt sebagai default. jika Anda menginginkan tujuan lain untuk file sumber yang Anda buat, Anda dapat mengaturnya dengan tag seperti yang ditunjukkan di bawah ini.
<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>
sumber
Inilah solusinya
sumber