Saya menggunakan Maven 3.0.5 dan Spring Tool Source 3.2 dengan plugin Maven diinstal. Ketika saya mencoba melakukan 'Run As ---> Maven install', saya mendapatkan kesalahan berikut:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Spring Social Twitter4J Sample 1.0.0
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.apache.maven.plugins:maven-compiler-plugin:jar:2.3.2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven.plugins:maven-war-plugin:jar:2.1.1 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven.plugins:maven-install-plugin:jar:2.3.1 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ spring-social-twitter4j ---
[debug] execute contextualize
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 15 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ spring-social-twitter4j ---
[WARNING] The POM for org.apache.maven.plugins:maven-compiler-plugin:jar:2.3.2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
Jun 21, 2013 2:14:32 AM org.sonatype.guice.bean.reflect.Logs$JULSink warn
WARNING: Error injecting: org.apache.maven.plugin.CompilerMojo
**java.lang.NoClassDefFoundError: org/codehaus/plexus/compiler/CompilerException**
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getDeclaredConstructors(Unknown Source)
at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:245)
at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:98)
at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:629)
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:831)
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:758)
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:255)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:204)
at com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:954)
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:987)
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:950)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1000)
at org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:45)
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:84)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:52)
at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
at org.sonatype.guice.plexus.lifecycles.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:138)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:108)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1011)
at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
at com.google.inject.Scopes$1$1.get(Scopes.java:59)
at org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:83)
at org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:49)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:253)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:245)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:455)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:92)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.compiler.CompilerException
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
... 54 more
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.749s
[INFO] Finished at: Fri Jun 21 02:14:32 IST 2013
[INFO] Final Memory: 4M/15M
[INFO] ------------------------------------------------------------------------
**[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project spring-social-twitter4j: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile failed: A required class was missing while executing org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile: org/codehaus/plexus/compiler/CompilerException**
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.apache.maven.plugins:maven-compiler-plugin:2.3.2
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/Users/SS%20Computer/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar
[ERROR] urls[1] = file:/C:/Users/SS%20Computer/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------: org.codehaus.plexus.compiler.CompilerException
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
Silakan temukan di bawah pom.xml saya:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.social.samples</groupId>
<artifactId>spring-social-twitter4j</artifactId>
<name>Spring Social Twitter4J Sample</name>
<packaging>war</packaging>
<version>1.0.0</version>
<properties>
<java-version>1.6</java-version>
<org.springframework.social-version>1.1.0.BUILD-SNAPSHOT</org.springframework.social-version>
<org.springframework-version>3.2.1.RELEASE</org.springframework-version>
<org.springframework.security-version>3.1.3.RELEASE</org.springframework.security-version>
<org.slf4j-version>1.7.2</org.slf4j-version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${org.springframework.security-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${org.springframework.security-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${org.springframework.security-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-core</artifactId>
<version>${org.springframework.social-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-web</artifactId>
<version>${org.springframework.social-version}</version>
</dependency>
<!-- Twitter4J -->
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>2.2.3</version>
</dependency>
<!-- JSR 303 with Hibernate Validator -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.1.0.Final</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.159</version>
</dependency>
<!-- @Inject -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- CGLIB, only required and used for @Configuration usage -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>2.2</version>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jstl-impl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>org.springframework.maven.release</id>
<name>Spring Maven Release Repository</name>
<url>http://maven.springframework.org/release</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
<!-- For testing against latest Spring snapshots -->
<repository>
<id>org.springframework.maven.snapshot</id>
<name>Spring Maven Snapshot Repository</name>
<url>http://maven.springframework.org/snapshot</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<!-- For developing against latest Spring milestones -->
<repository>
<id>org.springframework.maven.milestone</id>
<name>Spring Maven Milestone Repository</name>
<url>http://maven.springframework.org/milestone</url>
<snapshots><enabled>false</enabled></snapshots>
</repository>
</repositories>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warName>spring-social-twitter4j</warName>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
</plugin>
</plugins>
</build>
</project>
Selama maven menginstal tujuan saya adalah war:war
membuat PERANG aplikasi saya.
java
maven-3
maven-compiler-plugin
Rushi Shah
sumber
sumber
Jawaban:
Menghapus
.m2/repository
repositori lokal lengkap memecahkan masalah saya.Atau Anda perlu tahu plugin apa yang Anda gunakan persis dengan dependensinya ketika salah satu plugin mengalami masalah saat mengunduh.
sumber
.m2/repository
sehingga Anda tidak menghapussettings.xml
dalam.m2
dirrm -rf rm -rf ~/.m2/repository/org/apache/
bekerja untukku.Menghapus repositori lokal penuh .m2 memecahkan masalah saya juga.
Jika Anda tidak tahu di mana itu, lokasinya adalah:
sumber
%USERPROFILE%
akan mengarahkan Anda ke direktori profil tempat.m2
folder itu berada.Saya menambahkan lebih banyak poin ke solusi oleh @Rushi Shah
mvn clean install -X
membantu mengidentifikasi penyebab utama.Beberapa fase penting siklus hidup Maven adalah:
clean
- proyek bersih dari semua artefak yang berasal dari kompilasi sebelumnyacompile
- proyek dikompilasi ke dalam / direktori target root proyekinstall
- arsip yang dikemas disalin ke dalam repositori pakar lokal (bisa di direktori home pengguna Anda di bawah /.m2)test
- unit test adalah runpackage
- compiled sources dikemas dalam arsip (JAR secara default)Tag 1,6 di bawah mengacu pada versi JDK. Kita perlu memastikan bahwa versi jdk yang tepat di lingkungan dev kita atau ubah nilainya menjadi 1,7 atau 1,5 atau apa pun jika aplikasi dapat didukung dalam versi JDK itu.
Kita dapat menemukan detail lengkap tentang siklus hidup pembuatan Maven di situs Maven.
sumber
Saya memiliki masalah yang sama, periksa jre yang diinstal yang digunakan oleh Maven dalam Konfigurasi Konfigurasi Anda ...
Dalam kasus Anda, saya pikir bahwa maven-compiler-plugin: jar: 2.3.2 membutuhkan jdk1.6
Untuk melakukan ini: Jalankan Konfigurasi> YOUR_MAVEN_BUILD> JRE> Alternate JRE
Semoga ini membantu.
sumber
Kadang-kadang disebabkan karena proyek menunjuk ke JRE daripada JDK. Jadi coba ini,
1. Klik kanan pada proyek -> Build Path -> Configure Build Path -> Tambah Library -> JRE System Library -> Environments -> Install JREs -> Arahkan ke folder java di c: drive (Windows) ) dan pilih folder JDK dan ok.
2.Hapus JRE yang sudah ada dari build path.
sumber
Biasanya, mendefinisikan maven-compiler-plugin sudah cukup. tambahkan berikut ini ke definisi plugin kompiler Anda.
sumber
Terkadang masalah ini muncul karena java.version yang telah Anda sebutkan di POM.xml bukan yang diinstal di mesin Anda.
Pastikan Anda menyebutkan versi yang sama persis di pom.xml Anda seperti versi jdk dan jre yang ada di mesin Anda.
sumber
Saya pernah mengalami masalah ini, dan ini adalah bagaimana saya mengatasinya:
mvn clean verify
) dari terminal di lokasi proyek saat ini (di mana file pom.xml proyek Anda ada) alih-alih menjalankan maven dari gerhana.sumber
Sebenarnya, jika Anda tidak ingin menghapus .m2 / repositori / ... lokal Anda dan Anda memiliki salinan Maven yang diunduh dari Apache, Anda dapat meminta Eclipse / STS menggunakan Maven eksternal itu dan Anda dapat mengedit {maven} \ conf \ settings.xml untuk mengarahkan Penyimpanan lokal Anda ke lokasi kosong baru.
Tentu saja, Anda akan memiliki repositori baru dengan semua unduhan sumber maven selain lokasi .m2 Anda sebelumnya.
sumber
periksa
endorsed.dir
tag properti di blog Andapom.xml
.Saya juga punya masalah ini dan saya perbaiki dengan memodifikasi properti.
Contoh:
sumber
sumber
Bagi saya, memulai ulang Eclipse menghilangkan kesalahan ini!
sumber
Saya pikir Anda memiliki Dua cara untuk menyelesaikan masalah ini
01. Set Properties
Hapus file .m2
Jika Anda tidak dapat menyelesaikan masalah Anda menggunakan dua topik di atas, dapatkan tindakan ini Tutup proyek Anda. Hapus folder .m2 lengkap Anda
Cara mendenda file .m2 (windows)
sumber
Java 9 tidak kompatibel
Saya mendapatkan kesalahan ini ketika mencoba memanggil
mvn install
proyek.Saya telah menginstal Java 9 pada macOS dan juga Java 8 Update 144. Proyek Maven saya tampaknya memanggil Java 9 dan gagal. Dihapus Java 9 dari Mac saya, hanya menyisakan Java 8 di tempat. Maven sekarang dengan senang hati membangun proyek saya hingga berhasil diselesaikan.
Menggunakan Apache Maven 3.5.0 pada macOS Sierra.
sumber
Mungkin Anda bisa menambahkan ketergantungan ini ke pom.xml Anda. Saya menggunakan metode ini dan menyelesaikan masalah!
sumber
untuk pengguna baru di Mac os, cari tahu folder .m2 dan hapus, itu ada di / Pengguna /.m2 Anda direktori / .
Anda tidak akan melihat folder .m2 di finder (File Explorer), untuk pengguna ini perintah ini untuk Tampilkan file tersembunyi Mac
$ default tulis com.apple.finder AppleShowAllFiles TRUE
setelah tekan alt ini dan klik pada finder-> relaunch, Anda dapat melihat / Pengguna /.m2
untuk menyembunyikan file lagi, cukup gunakan $ default ini menulis com.apple.finder AppleShowAllFiles false
sumber
Saya mengganti nama direktori .m2, ini belum membantu, jadi saya menginstal sdk / jdk terbaru dan memulai kembali gerhana. Ini berhasil.
Sepertinya SDK diperlukan dan saya hanya menginstal JRE.
Yang aneh, karena gerhana bekerja pada mesin yang sama untuk proyek lama yang berbeda.
Saya mengimpor proyek maven kedua, dan Jalankan / maven instal hanya selesai setelah restart gerhana. Jadi mungkin hanya perlu restart gerhana.
Mengimpor proyek lain, dan harus melakukan
maven install
dua kali sebelum berhasil meskipun saya telah memulai kembali gerhana.sumber
Sungguh luar biasa wajib menghapus seluruh konten .m2 / repositori. Saya sarankan untuk mengetik perintah ini (Di Windows):
Perintah terakhir memungkinkan opsi Debug dan redirect output ke file. Buka file dan cari ERROR atau PERINGATAN kata kunci. Anda dapat menemukan ungkapan seperti ini:
Esay dalam hal ini untuk memahami bahwa Anda baru saja menghapus direktori C: \ Users \ vifie.m2 \ repositori \ net \ java \ jvnet-parent \ 3
Luncurkan kembali kompilasi, pengemasan, dan sebagainya:
PERINGATAN menghilang hanya karena Anda menghapus file POM rusak di lokasi yang baik dan harus mengunduh ulang. Biasanya file POM baru lebih baik.
Seringkali mode debug memberi Anda pesan dengan detail yang lebih komprehensif.
Mengapa saya mengarahkan log ke file: Cukup karena pada konsol Windows tidak memiliki cukup buffer untuk menyimpan semua baris dan seringkali Anda tidak dapat melihat semua baris.
sumber
Kami mencoba semuanya yang terdaftar sejauh ini dan masih gagal. Kesalahan juga disebutkan
Solusi yang akhirnya diperbaiki adalah menambahkan ini ke POM:
Seperti disebutkan di sini Galat saat merakit WAR - atribut webxml diperlukan
POM kami sekarang berisi ini:
sumber
Hapus kode di bawah ini dari pom.xml atau koreksi versi java Anda agar berfungsi.
sumber
Saya memiliki masalah yang sama dan selain menempatkan konfigurasi di atas posting
di elemen plugin di pom.xml. saya pikir masalahnya adalah tidak adanya eksekusi -> goal "endpoints_get_discovery_doc" dalam beberapa kasus seperti milik saya, jadi ini bekerja untuk saya.
sumber