问题标签 [maven-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
456 浏览

maven - 如何在 Maven 扩展中修改默认属性

我想编写一个 maven 插件(扩展),它为 javascript 项目实现生命周期,因此可以编译具有这样 pom.xml 的项目:

我已经成功创建了一个插件,components.xml其中包含一个定义生命周期的文件,因此我可以在各个阶段调用我自己的 Mojos。但是在某些阶段,只要我可以更改一些默认值,默认的 mojos 就足够了。例如,我想为outputDirectoryMaven 资源插件指定一个自定义,以便将 JavaScript 资源复制到target/classes/script-resources而不是target/classes. 这可以在插件中完成而不复制整个 ResourcesMojo 类并在那里更改属性的默认值吗?

0 投票
1 回答
242 浏览

maven - maven中“扩展”参数的确切含义是什么

我的意思是插件中的 extensions 参数如下:

0 投票
1 回答
686 浏览

maven - 仅在指定配置文件上启用 maven3 扩展

我在我的 Maven 3 构建中使用了一个扩展,它为我输出构建信息。这有点冗长,所以我只想在一些构建配置文件中运行它。但<extensions>只允许在主要<build>而不是在配置文件中。

所以我的问题是两个方面。首先,是否已经有一种方法可以限制扩展仅在特定配置文件中运行,而我可以在pom.xml? 其次,如果没有,那我应该如何实现呢?

我最初的想法是调用mavenSession.getCurrentProject().getActiveProfiles()并将其与我想要运行扩展的配置文件列表进行比较。但是然后我需要以某种方式在那里传递配置文件信息。我想在pom.xml而不是从命令行中执行此操作,但我不确定应该将这些信息存储在哪里。

0 投票
1 回答
8184 浏览

java - 通过组合而不是继承导入 Maven 插件配置。可以通过构建扩展来完成吗?

通过组合而不是继承导入 Maven 插件配置。可以通过构建扩展来完成吗?

我使用 maven 已经 3 年多了,有一个缺点一直困扰着我。现在是时候找到解决方案了。

问题:

我有一个带有 3 个孩子的“爸爸”maven 模块:“男孩”、“女孩”和“孩子”。对于默认的“全新安装”构建,这些子组件中的每一个都必须有自己独特的插件配置集。我不想把那个配置放在孩子们的 poms 上。我宁愿把它放在我以后可以重复使用的地方。

我已经尝试为此使用配置文件,但它不起作用 - 请参阅我在MNG-5127上的评论和附加项目

通过对daddy.zip项目进行以下更改,我找到了更好的解决方案:

1) 在爸爸的 pom 中,将 [profiles] 替换为具有 [phase]none[/phase] 的插件执行

2)在同一个pom上,添加了一个自定义构建扩展

3) 扩展将根据项目的属性值更改插件执行阶段。Java 代码如下。

4) 子模块 poms 只需要定义一个属性来告诉构建扩展做什么,例如男孩项目:

像这样在 daddy 项目上调用 mvn clean install ,将输出期望的结果:男孩是男孩,女孩是女孩,两者都是孩子。

问题是:我们能做得更好吗?

理论上,构建扩展可以导入来自不同 pom 的男孩、女孩和孩子的构建配置定义......对吗?这将是一种将 [build] 配置导入 pom.xml 的聪明而优雅的方式。

有很多可用的 Maven 插件,但我没有看到很多(实际上是任何)可以插入构建的可用构建扩展。有谁知道对此有帮助的构建扩展?


更新

这不是一个实际的答案,但它是我的问题的实际解决方案,所以这里。

通过组合而不是继承导入 Maven 插件配置。可以通过构建扩展来完成吗?

大概

有谁知道对此有帮助的构建扩展?

我很确定没有

但是,有一个使用配置文件的解决方案。

诀窍是基于文件的配置文件激活实际上是继承的(虽然它只适用于 maven3)

请参阅MNG-5127附带的daddy2.zip

这比使用构建扩展策略要好得多,因为使用配置文件提供了比仅仅更改几个插件执行阶段更大的灵活性。


更新 2

有谁知道对此有帮助的构建扩展?

我很确定没有

其实有什么!

它作为MNG-5102中的项目附加(由 Maurizio Pillitu 编写)我还没有测试过它,但它似乎与提议的构建扩展非常接近。

0 投票
1 回答
1076 浏览

java - 指定 Maven 扩展的依赖项

我正在尝试org.springframework.build:aws-maven:jar:4.2.0.RELEASE为一个项目进行配置,但遇到了以下问题:似乎某些插件依赖项需要org.codehaus.jackson:jackson-core-asl,但找不到。失败:

我添加了一个包含此工件的存储库,并且还尝试将其作为依赖项添加到主项目(顺便说一句,我实际上不需要它)。没有帮助。

它是扩展,而不仅仅是插件,所以我不能在那里添加依赖:

据我了解,构建扩展不使用主块中的依赖项。如何为扩展指定此依赖项?

0 投票
1 回答
5262 浏览

maven - Tycho/Maven 的配置问题:“未配置 Tycho 构建扩展”

我一直在关注 Vogella 的教程 ( http://www.vogella.com/articles/EclipseTycho/article.html ) 使用 Tycho 为我的项目设置 Maven 构建环境。我的项目已经相当大了,有几个插件、功能和一个更新站点,但是我设法得到mvn cleanmvn compile正常工作,并一直遵循教程直到mvn install. 我现在面临的问题令人困惑。我一直收到以下错误:

从此堆栈跟踪中截取插件列表。他们都被跳过了。父母失败了。

我看到原因的根源是目标平台以某种方式未定义。但是当我在 Eclipse wiki ( http://wiki.eclipse.org/Tycho/Target_Platform )上查找目标平台时,它指出:

为了允许 Tycho 解决项目对来自特定 p2 存储库的任何内容的依赖关系,请将该存储库添加到 POM 的部分...就目标平台而言,这意味着以这种方式指定的 p2 存储库的全部内容成为目标平台的一部分。

我的 POM 中有该部分。事实上,这是我父 POM 的全部内容(根据教程在单独的通用项目中定义)。我只省略了所有模块的声明:

我错过了什么吗?我似乎已经将文档地址定义为目标平台。我什至看到了正确的问题吗?

0 投票
2 回答
5191 浏览

maven - 使用“wagon-ssh”构建 maven 项目时出现“无法初始化扩展”错误

使用 wagon-ssh 扩展构建 Maven(版本 2.2.1)项目时出现以下错误

pom.xml:

无法初始化扩展组件描述符角色:“com.jcraft.jsch.UIKeyboardInteractive”,实现:“org.apache.maven.wagon.providers.ssh.jsch.interactive.PrompterUIKeyboardInteractive”,角色提示:“默认”有提示,但还有其他实现不

任何建议/提示都非常受欢迎。

0 投票
3 回答
5061 浏览

maven - 带有扩展的 Maven 3 配置文件

我的问题已在此线程中得到解决,但解释不清楚。

我的 pom.xml 文件之一中有这个构建定义:

请注意,我使用的是 maven-s3-wagon 扩展。接下来,我想要 2 个不同的配置文件,每个配置文件都有自己的设置、插件和扩展,但 maven 不允许在配置文件下使用扩展标签。

当我尝试使用配置文件时:

我的 pom 中出现错误:

问题所以使用扩展标签意味着我不能使用配置文件?如何通过配置文件使用或更改构建扩展?

0 投票
1 回答
65 浏览

maven - mvn 版本:没有 tycho 扩展的更新父级

如果不需要,如何轻松禁用 tycho 扩展(例如在版本:更新父级)?

我有几十个 eclipse-plugin 项目并解决了目标平台减慢了进程无法忍受的问题。

0 投票
2 回答
1068 浏览

maven - 在 Maven 中继承构建插件/扩展/...

假设一个 Maven 项目配置了一个很酷的构建插件:

我希望这个配置是可重用的,这样我就可以在任何新项目中运行插件/扩展提供的目标。上面的项目可能只是为了让其他项目可以重用配置而存在。

实现这一目标的最佳方法是什么?