问题标签 [maven-lifecycle]
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.
java - Maven生命周期理解
我有一个 JavaEE,maven 应用程序。在这个应用程序中,我使用从 XSD 生成的类,以及通过 Mapstruct 生成的映射器。
在我的 EJB 模块中,maven 构建应该执行以下操作:
- 通过jaxb2-maven-plugin从 XSD 生成 java 类
- 通过build-helper-maven-plugin将这些生成的类添加到源文件夹 ,因为:
- maven-processor-plugin通过generate-mapstruct-mappers生成Mapstruct映射器实现,它使用这些 XSD 生成的类
- 最后将这些映射器实现也添加到源文件夹
不幸的是,它对我不起作用。这是 ejb 的 pom.xml 的插件部分:
这会从 JAXB 生成类,并将其放入 JAR 文件的源代码中。但是生成的 Mapper 实现不在源代码中。
在 Eclipse 中,我可以将生成的类设置为构建路径的一部分,但生成的 JAR 不包含映射器实现。
如果我更改插件的阶段,maven-processor-plugin 将抛出一个找不到 simbol错误,并且该符号是从 jaxb 生成的类。
谢谢你帮助我。
java - Maven生命周期错误的顺序
package
我在此阶段部署我的应用程序:
integration-test
并在阶段运行一些集成测试
但是,当我查看控制台时,JMeter 测试在redeploy
. 这怎么可能?我错过了什么?
maven - Travis CI Maven 构建中的清洁生命周期
当我查看.travis.yml
配置时,我经常会看到mvn clean verify
或mvn clean install
.
clean
在 Travis CI 构建中第一次调用mvn
脚本时调用生命周期有什么意义吗?clean
在刚刚开始的新 Travis 构建中是否有必要?
我理解为什么clean
在状态可能不干净时需要在本地环境中,所以在 Maven 中,为什么要运行'mvn clean'?不回答我的问题。
maven - 向 Maven 生命周期添加阶段?
我尝试在 Maven 生命周期中添加一些额外的阶段。主要是增加一些额外的测试级别:
以上包含新的应用程序测试和系统测试阶段(包括前期和后期)。
我已经在以下位置启动了一个测试插件:codezoo-lifecycle-maven-plugin 我用于测试的 pom 位于src/it文件夹中。
似乎新阶段或有所回升,但发生了一些奇怪的事情:
这行得通。我为测试添加的回声插件也被执行。但是有一些警告(使用 maven 3.3.9)。
执行默认生命周期跳过新阶段。
如果我将生命周期的“测试级别”的 ID 更改为“默认”,则阶段会执行两次。
发出的警告是:
发出此警告的源代码表明生命周期未正确命名空间。但我无法弄清楚这是如何做到的。
我在网上找到了一些提示:create-a-new-phase (Stackoverflow) 或其他插件,如maven-scm-publish-plugin或docker-maven-plugin。但是那些要么创建一个完整的新生命周期,要么只是从默认的 Maven 生命周期更改插件映射。
网络上有关此主题的所有其他内容似乎至少有 4 年历史了……
所以:
- 如何向 Maven 默认生命周期添加其他阶段(如果我必须重复默认插件映射:我可以忍受)
- 如何命名新的生命周期?似乎我创建了自己的包装(在配置中被称为角色提示)。但是 Maven 仍然有一些回退到默认生命周期。
- 可以不重复使用默认的 Maven 阶段吗?
测试插件的当前状态在 github 上。
谢谢!
java - JAR 打包 Maven 生命周期在哪里定义?
我正在根据 JAR 打包的生命周期创建自定义 Maven 打包。我想知道这个生命周期是在哪里定义的(即components.xml
源代码位置)。
maven - Maven中自定义生命周期中的阶段名称冲突?
AFAIK,您可以在 Maven 中创建自定义构建生命周期。
此外,AFAIK,您不能告诉 maven 执行生命周期。您可以:
告诉 maven 执行一个阶段:在这种情况下,maven 会找到这个阶段在哪个生命周期中,然后执行该生命周期中的所有阶段,直到指定的阶段。
告诉 maven 执行一个目标,将其指定为
mvn plugin_name:goal_name
所以,假设我已经创建了一个自定义生命周期。并假设这个自定义生命周期有一个名为install
.
当我编写mvn install
时,maven 会执行默认生命周期(其中有一个名为 的阶段install
)还是我的自定义生命周期(也有一个名为 的阶段install
)?
maven 将如何确定要遵循的生命周期?
dependencies - 是否可以从 p2 repo 解决 maven 插件中的依赖关系
我正在开发一个 Maven 插件,它将用于覆盖默认的 Maven 生命周期,并将使用我的代码。我有多个 jar 依赖项(eclipse 和我的另一个应用程序插件)。我有这些罐子的 p2 回购。如何整合这两者来解决所有依赖关系?Tycho 不能使用,因为它只能用于 RCP 应用程序(我的理解/误解)。
与此类似 -问题
还有其他解决方法吗?
java - 自定义生命周期中断 Surefire:Maven 中的测试
我有一个插件,它可以在构建过程中创建一个特殊的 zip 文件。
为此,它定义了一个自定义包装类型“wcc”和一个自定义生命周期。
当我运行mvn package
应用程序时,我的 zip 文件构建得很好,一切正常。
(注意:它正在跳过单元测试来执行此操作。)
但是,当我运行mvn test
它失败。
并吐出以下日志:
如果我更改<packaging>
为jar
fromwcc
然后我的测试运行并通过就好了。
那么为什么我会收到这个错误,更重要的是我该如何解决呢?
进一步的调查
Maven surefire 插件仅支持java.lang.String
属性。我的插件有一对java.io.File
属性。
我的插件使用这些属性来打包 zip 文件,以及适当地打包文件并确保它以预期的格式构建。
我怎样才能确保忽略这些配置属性?我是否需要制作它们 String
并将转换添加到File
以这种方式使用的插件中?
java - Maven Ant 在构建结束时运行一些东西
我有一个 Maven 父项目,它有 6 个模块,每个模块都会生成一个特定的工件,该工件被复制到某个地方,当所有模块都构建好后,我希望能够运行一个 ant 任务,将这些工件提交并推送到它的 GIT 存储库中。知道如何在 Maven 中实现这一点吗?目前我从 Ant 运行 Maven,然后运行 GIT Commit/Push 任务。
谢谢!
约翰
maven-lifecycle - 未知的生命周期阶段“运行”。您必须指定一个有效的生命周期阶段
[错误] 未知的生命周期阶段“运行”。您必须在格式中指定有效的生命周期阶段或目标