我使用 Eclipse (Indigo) 和 Maven 的 M2E 插件。现在,出于某种原因,汽车制造商在不做任何更改的情况下继续重建项目大约 50 次,直到他满意为止,这占用了大量资源,而且是一个很大的痛苦......
我一次又一次地得到以下输出:
14.12.11 12:32:17 MEZ: Maven Builder: AUTO_BUILD requireFullBuild
14.12.11 12:32:17 MEZ: [WARN] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
14.12.11 12:32:17 MEZ: [INFO] Copying 2 resources
14.12.11 12:32:17 MEZ: [INFO] Nothing to compile - all classes are up to date
14.12.11 12:32:17 MEZ: [WARN] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
14.12.11 12:32:17 MEZ: [INFO] Copying …Run Code Online (Sandbox Code Playgroud) 我使用描述多模块项目的原型在 Eclipse 中创建了一个新的 Maven 项目。它部分地作为例外工作并且我已经习惯了。在 Project Explorer 中,模块显示为顶层的项目,而不是父项目的子文件夹。在我的硬盘上,文件夹结构显示了父根项目文件夹下的模块。我现在习惯于在 Navigator 中看到相同的结构,但它显示的文件夹结构与 Project Explorer 相同。
为了让这更烦人,我使用Maven=>手动创建了另一个模块New Maven Module Project。该模块按预期运行。它在导航器中显示为父文件夹的子文件夹,我可以提交它。
将其可视化:
硬盘上的结构(在导航器中预期):
- parentProject
| - module1
| - module2
| - manuallyCreatedModule
Run Code Online (Sandbox Code Playgroud)
导航器和项目浏览器中的结构:
-parentProject
| - manuallyCreatedModule
- module1
- module2
- manuallyCreatedModule
Run Code Online (Sandbox Code Playgroud)
我已经将手动创建的模块和其他模块的 poms 和项目首选项与最后一个细节进行了比较,似乎无法找到这种不同行为的原因。poms 的相关部分似乎是相同的:
父pom:
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>myId</groupId>
<artifactId>parentProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>module1</module>
<module>mdoule2</module>
<module>manuallyCreatedModule</module>
</modules>
</project>
Run Code Online (Sandbox Code Playgroud)
原型模块 pom:
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> …Run Code Online (Sandbox Code Playgroud) 我读到 Maven 3.5.x 的控制台输出有颜色,但在我的 Eclipse Photon(集成了 Maven 3.5.3)中,没有颜色。我误解了公告还是我需要以某种方式激活彩色输出?
我从这里安装了m2e 1.0最新版本
http://download.eclipse.org/technology/m2e/releases
我不得不删除eclipse的旧maven集成,以及eclipse WTP的maven集成
安装这个最新版本,并重新启动eclipse后,我发现maven菜单从右键单击项目消失,所以我虽然我需要m2e附加功能,但我找不到兼容版本,请指教.
例如,如果我将BukkitApi jar作为maven项目的依赖项,并将detanecy范围设置为提供,编译,系统,运行时或测试
bukkitAPI将在哪些范围内包含在编译输出中?
我正在尝试创建一个部署包,它将我的maven模块的所有依赖项捆绑到eclipse中的另一个maven项目.
我在我的pom.xml中有这个
<modelVersion>4.0.0</modelVersion>
<groupId>com.my.proj</groupId>
<artifactId>AAA</artifactId>
<version>0.0.2-SNAPSHOT</version>
<name>btc</name>
<dependencies>
<dependency>
<groupId>com.another.proj</groupId>
<artifactId>BBB</artifactId>
<version>1.4-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.group.id.Launcher1</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
我在eclipse中使用"m2 Maven Build",其目标是"org.apache.maven.plugins:maven-shade-plugin:shade"和"Resolve Workspace artifacts".
它失败了
--- maven-shade-plugin:1.6:shade (default-cli) @ AAA ---
[ERROR] The project main artifact does not exist. This could have the following
[ERROR] reasons:
[ERROR] - You have invoked the goal directly from the command line. This is …Run Code Online (Sandbox Code Playgroud) 很多人都抱怨m2e将其编译器设置重置为1.5.这些投诉的答案通常是设置源和目标级别,如下所示:
<plugins>
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)
我正在使用内置m2e的Eclipse Kepler,这对我不起作用.我检查了m2e的更新,但没有.每次我选择Maven> Update Project时,我的编译器版本都会恢复为1.5,我必须打开项目设置并将其重置为1.7.
还有什么需要做的,或者这是开普勒的m2e中的一个错误?
我有一个正确的pom.xml文件的Maven项目.我能够从命令行构建项目mvn install.但是,当我在eclipse中将项目导入为现有的Maven项目时,我Unsupported IClasspathEntry kind=4在eclipse中遇到错误.
此外,一些项目的属性在导入后没有正确反映 - 例如它是一个Web项目,但我没有Deployed Resources在项目结构下看到.我仍然可以M在项目图标上看到这一点,表明它是一个maven项目.
我尝试更新项目Alt+F5并刷新它F5.还是一样的错误.
我也尝试过这个SO帖子中提到的方法
Eclipse也在我的pom.xml中显示错误,但mvn install在cmd行中工作正常.
Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.5:copy-resources (default-cli)
Run Code Online (Sandbox Code Playgroud)
我不确定这2个错误是否相关.
我的设置:
我需要较旧版本的m2e,因为我需要使用较旧的maven版本(我必须使用JDK 1.6编译一些项目).
在火星中启动任何构建(使用java 1.6)时的异常:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:254)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Run Code Online (Sandbox Code Playgroud)
如果安装外部maven组件同样的问题,因为问题应该是使用JDK 1.7编译的新m2e插件.
有什么建议?
这是一个相关的问题.
问候.
编辑:我发现,我的问题是这个问题.这篇文章可以删除.
如果我想添加一个依赖项,肯定是在Maven Central中,它找不到它.
我的有效pom包含两个id为"central"的条目:
如果我手动添加依赖项,则不会下载它.
我已经检查了这里提到的方框,"启动时下载存储库索引"已经激活.
在"Maven存储库视图"中,当我单击"启用完整索引"时,它会显示:"由于以下错误,无法设置索引详细信息:读取过去的EOF"(在两个中心上).
我如何获得中央'重新连接'?
PS:我会像其他人一样以正确的方式完成上面的链接,但由于<10声誉,SOF还不允许这样做.
eclipse ×10
m2e ×10
maven ×7
java ×3
m2eclipse ×3
auto-build ×1
dependencies ×1
eclipse-mars ×1
eclipse-wtp ×1
maven-2 ×1