标签: maven-plugin

Maven:无法执行目标org.apache.maven.plugins:maven-resources-plugin:2.7:资源

我正在使用Maven构建我的项目.我的maven版本是apache-maven-3.0.4.我正在使用Eclipse Luna.当我尝试构建我的项目时,我收到以下错误

[错误]无法执行目标org.apache.maven.plugins:maven-resources-plugin:2.7:项目OrionCommunity上的资源(默认资源):标记无效 - > [帮助1].

以下是运行mvn clean install时的堆栈跟踪-X:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:53.295s
[INFO] Finished at: Thu Oct 09 20:00:26 IST 2014
[INFO] Final Memory: 9M/25M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources (default-resources) on project OrionCommunity: Mark invalid -> [Hel
p 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources (default-resources)
 on project OrionCommunity: Mark invalid
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
        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 …
Run Code Online (Sandbox Code Playgroud)

java eclipse maven-plugin maven

43
推荐指数
3
解决办法
10万
查看次数

如何使用maven-archetype-plugin创建项目?什么是artefactId等?

我是Maven的新手,我在这里使用maven.apache.org 教程作为介绍.

在本教程的" 如何制作我的第一个Maven项目? "部分中,它教我们通过执行以下命令生成Maven原型项目:

mvn archetype:generate
Run Code Online (Sandbox Code Playgroud)

在Maven下载了很多工件后,它突然停止并在命令行上询问以下问题:

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 149:
Run Code Online (Sandbox Code Playgroud)

Apache教程没有描述此提示.

我有两个问题:

1.上面要求的问题是什么?如何回答这个mvn archetype:generate过程继续进行?

2.传统上,人们是否mvn archetype:generate习惯创建Maven项目?

--------------更新---------------------

关于我的第一个问题,我按下"输入"而没有输入任何值,并得到以下输出:

Choose version: 
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
Choose a number: 6: 
Run Code Online (Sandbox Code Playgroud)

那是什么?

我在上面的情况下输入"1",然后我得到了以下内容:

Define value for property 'package':  : :
Define value for property 'groupId': : 
Define value for property 'artifactId': …
Run Code Online (Sandbox Code Playgroud)

maven-2 maven-plugin maven-3 maven maven-archetype

41
推荐指数
2
解决办法
3万
查看次数

何时在Maven中使用MojoExecutionException与MojoFailureException

AbstractMavenMojo的execute方法声明它抛出两个异常,MojoExecutionException和MojoFailureException.抛出任一导致构建停止并且日志在每种情况下显示几乎相同的消息.

MojoExecutionException的消息是:

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] [exception text]
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

并且MojoFailureException的消息是:

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] [exception text]
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

什么时候应该抛出哪个例外以及为什么?

maven-2 maven-plugin

40
推荐指数
2
解决办法
6540
查看次数

Maven:在classes文件夹中包含META-INF文件夹

我有一个非常简单的WAR项目,我想META-INF在类输出文件夹的顶部包含一个目录,其中包含所有已编译的Java类.我正在使用Maven,但似乎默认情况下Maven不会包含任何不是Java类的内容.所以它忽略了我META-INF位于src目录顶部的目录.该META-INF目录包含一个名为的文件persistence.xml.有关如何指示Maven将此目录和文件放入输出文件夹的快速指示?

java maven-2 web-applications java-ee maven-plugin

40
推荐指数
2
解决办法
7万
查看次数

Maven Cobertura插件没有生成coverage.xml

我正在尝试生成一个coverage.xml,以便我可以在Hudson的Cobertura插件中引用它,但是文件没有被创建.

我已将以下内容添加到我的POM中

 <reporting>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
               <formats>
                   <format>html</format>
                   <format>xml</format>
               </formats>
            </configuration>
        </plugin>
    </plugins>
</reporting>
Run Code Online (Sandbox Code Playgroud)

运行mvn cobertura:cobertura后,HTML网站按照预期在**\target\site\cobertura生成,但找不到coverage.xml.我错过了什么/误解了什么?

我正在运行Maven 3.0.3

cobertura maven-plugin maven-3 hudson-plugins

39
推荐指数
3
解决办法
3万
查看次数

Maven 2.1.0没有将系统属性传递给Java虚拟机

在Linux 机器上运行Hudson构建时,我们使用命令行将系统属性传递给Java虚拟机.它曾经在2.0.9中很好地工作,因为我们升级到2.1.0它已经完全停止工作.系统属性永远不会进入Java虚拟机.

我创建了一个小型测试项目,实际上根本不起作用.

这应该适用于Maven 2.0.9:

mvn2.0.9 -Dsystem.test.property=test test 
Run Code Online (Sandbox Code Playgroud)

但这会失败:

mvn2.1 -Dsystem.test.property=test test 
Run Code Online (Sandbox Code Playgroud)

Java代码就是这么做的

assertTrue( System.getProperty("system.test.property") != null); 
Run Code Online (Sandbox Code Playgroud)

maven-2 jvm system-properties maven-plugin surefire

38
推荐指数
2
解决办法
3万
查看次数

如何在库中支持多个Scala版本

我有一个相当普通的Scala项目,目前正在使用Maven构建.我想支持Scala 2.9.x和即将推出的2.10,它不是二进制或源兼容的.如果有必要,我愿意接受转换到SBT,但我遇到了一些挑战.

我对这个项目的要求是:

  • 单源树(无分支).我相信,尝试为每个Scala版本支持多个并发"主"分支将是错过分支之间错误修正的最快方法.

  • 特定于版本的源目录.由于Scala版本不是源兼容的,我需要能够为版本特定的源指定辅助源目录.

  • 特定于版本的源jar.最终用户应该能够为他们的Scala版本集成下载具有正确版本特定源的正确源jar.

  • 集成部署.我目前使用Maven发布插件将新版本部署到Sonatype OSS存储库,并且希望为发布版本提供类似的简单工作流程.

  • 最终用户Maven支持.我的最终用户通常是Maven用户,因此准确反映依赖关系的功能性POM至关重要.

  • 阴影罐支持.我需要能够生成包含我的依赖项子集的JAR,并从已发布的POM中删除着色的依赖项.

我尝试过的事情:

  • Maven个人资料.我创建了一组Maven配置文件来控制用于构建Scala的版本,使用Maven build-helper插件来选择特定于版本的源树.这一点很有效,直到发布时间为止;

    • 使用分类器来限定版本不能很好地工作,因为源jar也需要自定义分类器('source-2.9.2'等),并且大多数IDE工具都不知道如何定位它们.

    • 我尝试使用Maven属性将SBT样式_ $ {scala.version}后缀添加到工件名称,但Maven不喜欢工件名称中的属性.

  • SBT.一旦你能够理解它,它就能很好地工作(尽管有大量文档,但这不是一项小任务)缺点是似乎没有Maven阴影插件的等价物.我看过:

    • Proguard的.该插件未针对SBT 0.12.x进行更新,并且不会从源构建,因为它依赖于另一个已更改groupIds的SBT插件,并且在旧名称下没有0.12.x版本.我还没有弄清楚如何指示SBT忽略/替换插件依赖项.

    • OneJar.这使用自定义类加载来从嵌入式jar中运行Main类,这不是期望的结果; 我希望我的项目的类文件与我的着色依赖项中的(可能已重命名的)类文件一起放在jar中.

    • SBT Assembly插件.这可以在一定程度上起作用,但POM文件似乎包含我试图遮蔽的依赖项,这对我的最终用户没有帮助.

我接受可能没有一个解决方案能够满足我对Scala的需求,并且/或者我可能需要编写自己的Maven或Scala插件来实现目标.但如果我能找到现有的解决方案.

更新

我接近@ Jon-Ander的优秀答案,但对我来说仍然有一个优秀的作品,这是一个统一的发布过程.我的build.sbt的当前状态是在GitHub上.(我将在稍后的回答中为后代再现它).

sbt-release插件不支持多版本构建(即,+ release不像人们喜欢的那样),这有点意义,因为版本标记的过程并不真正需要跨版本发生.但我希望这个过程的两个部分是多版本的:测试和发布.

我想要发生的事情类似于两阶段maven-release-plugin过程.第一阶段将执行更新Git和运行测试的管理工作,在这种情况下,这将意味着运行+ test以便对所有版本进行测试,标记,更新到快照,然后将结果推送到上游.

第二阶段将签出标记版本+ publish,并将重新运行测试并将标记版本推送到Sonatype存储库.

我怀疑我可以编写releaseProcess执行上述每个操作的值,但我不确定我是否可以支持多个releaseProcessbuild.sbt.它可能适用于一些额外的范围,但SBT的那部分对我来说仍然很奇怪.

我目前所做的是改为releaseProcess不发布.然后我必须手动检查标记版本并运行+ publish事实,这接近我想要的但确实妥协,特别是因为测试仅在发布过程中的当前scala版本上运行.我可以使用像maven插件那样不是两个阶段的进程,但是实现了多版本测试和发布.

任何可以让我跨越最后一英里的额外反馈将不胜感激.

scala maven-plugin maven sbt

37
推荐指数
1
解决办法
3603
查看次数

如何在插件中访问Maven的依赖关系层次结构

在我的插件中,我需要处理依赖关系层次结构并获取有关每个依赖关系的信息(groupId,artifactId,version等)以及它是否被排除.做这个的最好方式是什么?

maven-plugin maven maven-dependency-plugin aether

36
推荐指数
4
解决办法
2万
查看次数

开发Maven 3.0插件

我为Maven 2开发了几个Maven插件,但我想知道当我想为Maven 3.0开发插件(或迁移现有的插件)时主要的变化是什么.

在Maven站点的文档没有达到最新的(一个惊喜的!)和所有相关的页面仍然处理与Maven 2.0,像这样的一个:

本指南旨在帮助用户开发Maven 2.0的Java插件.

举个例子,在Maven 2插件中,我定义了一个配置参数,如下所示:

/**
 * Some parameter.
 * 
 * @parameter
 * @required
 */
private String foo;
Run Code Online (Sandbox Code Playgroud)

所以现在,使用新的Maven Plugin API,我期待真正的 Java注释......

问题:在哪里可以找到有关Maven 3插件开发的文档/信息?

maven-plugin maven-3

34
推荐指数
1
解决办法
1万
查看次数

Maven:Maven属性值的概述

我想找出适用于某些Maven项目的所有 Maven属性的值.
mvn help:system列出OS环境变量和JVM系统属性,但没有Maven属性.
mvn help:evaluate仅在交互模式下工作,这意味着我必须键入单个Maven属性(例如${project.build.outputDirectory})以获取该属性的值.

我正在寻找一种方法来获取所有Maven属性及其值的完整列表.

maven-plugin maven-3

33
推荐指数
3
解决办法
2万
查看次数