我有几个Maven项目,每个项目都有一些共同的功能或至少是常见的配置/依赖项.我将其解压缩到一个公共的pom.xml,然后模块化了几个方面,例如持久性,Spring相关的依赖项等等 - 所有这些都在他们自己的模块中继承自这个父POM.
现在,"Common"是版本1.0.0,我有"ProjectA",我希望继承它.我收到警告:
版本与父版本重复
我不完全理解为什么这是一个警告.我以为我可以选择省略项目POM中的版本以继承该版本.(我为常见模块执行此操作 - 例如,common-spring为Spring应用程序添加了额外的常见依赖项,实际上,ProjectA实际上继承自common-spring.)
这不是一个选择吗?如果我将ProjectA版本更改为1.0.1或2.0.0一切都很好.
我想知道是否有可能在eclipse中配置run as maven install以跳过单元测试,如果这样的事情是可行的,那么请告诉我如何做到这一点,提前谢谢.
我的Maven安装(Windows 7 64位)有一个.cache
几乎3.5GB 的目录!它只包含一个m2e
目录.(我正在使用m2e运行Eclipse 4.3M7.)目前内部所有内容都不需要,而且我甚至不知道这些东西是什么!我在.cache
网上找不到目录的Maven文档.
那么.m2/repository/.cache
和.m2/repository/.cache/m2e
目录是什么?他们为什么多年前有这么多东西?我如何处理不再需要的所有东西?
我正在使用maven和eclipse m2e配置一个多模块父子maven项目,我正在使用来自eclipse Juno SR1的最新资料,即m2e 1.2.0
父pom使用enforcer插件,因此父pom.xml在其插件部分中具有以下内容
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.1.1</version>
<executions>
<!-- Enforce that all versions of a transative dependency must converge. -->
<execution>
<id>enforce</id>
<configuration>
<rules>
<DependencyConvergence />
</rules>
</configuration>
<goals>
<goal>enforce</goal>
</goals>
</execution>
<!-- Black list certain jars -->
<execution>
<id>enforce-banned-dependencies</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<exclude>
commons-logging:commons-logging
</exclude>
</excludes>
</bannedDependencies>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
每个子项目都有一条错误消息说 maven-enforcer-plugin (goal "enforce") is ignored by m2e.
我正在使用安装了m2e插件的Eclipse EE 3.7.我在Eclipse中设置了JDK7.当我导入maven项目时,JRE设置为JRE System Library [J2SE-1.5]
,所以我有与java 6相关的东西的编译问题.相反,我希望eclipse中的JRE默认设置为JRESystem Library [J2SE-1.6]
当我尝试在第一个屏幕上的eclipse文件 - >新建 - > Java项目中打开一个新项目时,我可以选择JRE,第三个选项是 Use default JRE (currently 'jdk1.7.0_03')
从中我可以看到Eclipse中的默认JRE是1.7,但是当我导入新的Maven项目时,JRE默认设置为1.5.
任何帮助,我该怎么办?
我下载了Eclipse Kepler,并尝试从其更新站点安装M2Eclipse .
选择Maven Integration for Eclipse后,我单击Next并出现以下错误:
缺少要求:Maven Integration for Eclipse 1.5.0.20140606-0033(org.eclipse.m2e.core 1.5.0.20140606-0033)需要'bundle com.google.guava [14.0.1,16.0.0)'但无法找到
所以我通过互联网搜索了解如何安装Guava Eclipse插件.有人说它来自Eclipse市场,但无法下载.我下载了二进制文件,并尝试将其复制到Eclipse的插件目录中.结果仍然相同.
cp ~/Downloads/guava-16.0.1.jar /Applications/eclipse/plugins/com.google.guava_16.0.1.v1234.jar
Run Code Online (Sandbox Code Playgroud)
如何为开普勒安装m2e插件?
如果我问一个可能微不足道的问题,我很抱歉,但是我很难找到Resolve Workspace Artifacts在Eclipse IDE中使用M2Eclipse插件在Maven构建窗口中做了什么.我是指这个:
有谁有想法吗?我尝试了google-ing和stackoverflow-ing解决方案; 有很多错误请求/报告,但没有明确的此选项说明.谢谢您的帮助.
我在Eclipse Luna的maven项目给了我这两个警告:
断根的单根规则:对于Web项目或EAR项目,只允许一个部署路径为"/"的元素
和
单根规则损坏:Web项目的输出文件夹必须是/ WEB-INF/classes configurations-web
发生这种情况是因为maven插件使用org.eclipse.wst.common.component中的后续wb-resources设置项目配置
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="sample-web">
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/.apt_generated"/>
<property name="context-root" value="sample"/>
<property name="java-output-path" value="/sample-web/target/classes"/>
</wb-module>
</project-modules>
Run Code Online (Sandbox Code Playgroud)
如何禁用此验证以摆脱这个恼人的警告?
如何使用Eclipse m2e引用另一个工作区项目?
我是否必须在项目设置中添加项目依赖项?但在这种情况下,依赖关系不会显示在pom中.
如果我在pom中设置它们,它将不会在工作空间中引用项目,而是引用本地存储库中的jar.很烦人,有人可以帮忙吗?
Maven很棒.它主要通过在pom
配置中指定依赖包的版本来使我脱离jar依赖地狱,并自动应用它们.它还通过m2e与Eclipse进行了很好的集成,因此可以在IDE中无缝地工作.
这对于Maven全局已知的依赖项来说非常有用.但是,有时候,有些库需要包含在Maven存储库中不可用的项目中.在这种情况下,我通常将它们添加到lib/
项目中的目录中.只要它们在类路径中就可以编译.
但是,问题是导入项目时会自动包含它们.我一直在容忍这个问题,包括半生不熟的修复和黑客攻击太久了.每当有人安装这个项目时,我都要告诉他们手动将jar添加lib/
到他们的Eclipse构建路径中,以便所有错误都消失.类似于以下内容:
我正在寻找一种方法来自动化这个过程,它既适用于mvn
命令行程序又适用于Eclipse:更多的是强调Eclipse,因为在导入它们时只需要编译的项目很好.
我不想为此设置一个repo服务器,也没有任何内部专有组件可以保证在本地设置任何东西.我只有一些jar文件,开发人员不使用Maven; 我想和他们一起编译......我应该能够将它们包含在我的软件发行中,对吗?
我真的在寻找一种合理的方法来实现它,它也可以在Eclipse中运行而不用大惊小怪.这是我发现有希望的一个解决方案,但肯定似乎没有这个问题的权威解决方案.唯一接近的另一件事是maven-addjars-plugin,它可以正常工作但只能在命令行上运行.这个插件也不错,配置非常合理:
<plugin>
<groupId>com.googlecode.addjars-maven-plugin</groupId>
<artifactId>addjars-maven-plugin</artifactId>
<version>1.0.5</version>
<executions>
<execution>
<goals>
<goal>add-jars</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${project.basedir}/lib/java-aws-mturk</directory>
</resource>
<resource>
<directory>${project.basedir}/lib/not-in-maven</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但是,尝试让它在Eclipse中运行会涉及到以下关于生命周期映射的混乱pom.xml
,我从未开始工作; 我甚至认为它没有配置为实际向Eclipse构建路径添加任何内容.
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
com.googlecode.addjars-maven-plugin …
Run Code Online (Sandbox Code Playgroud)