- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
花了几个小时试图找出问题所在后,我得出的结论是我需要知道:
如何强制 Maven 按照以下顺序执行生命周期阶段 clean、build 和 site:clean -> build -> site
?
问题/场景:
我必须使用相同的模块进行多模块项目:
pSuccess
|-pSuccessClient
|-pSuccessEJB (has pSuccessClient as dependency)
|-pSuccessEAR (has pSuccessEJB as dependency)
和
pFail
|-pFailClient
|-pFailEJB (has pFailClient as dependency)
|-pFailEAR (has pFailEJB as dependency)
这两个项目在我们的中央 nexus artefact 存储库中都有用于快照和发布的分发存储库,但它们都没有部署到其中,这意味着 nexus 是空的。
当我运行mvn clean package site
时关于pSuccess
-project 目标目录被删除(clean-lifecycle),然后模块全部构建(build-lifecycle),最后在新构建的模块上正确生成报告(site-lifecycle) - 构建成功!在“调试”该过程时,我发现在构建生命周期期间,所需的 clientDependency 被放置在 lokal maven 存储库中,然后用于 EJB,与 EAR 模块的 EJB 相同。工作顺利,符合预期。
但是当我在pFail
上做同样的事情时-project maven 在 clean-lifecycle 之后、build-lifecycle之前执行 site-lifecycle。正如您所料,这会导致构建失败,因为 Maven 无法找到 EJB 所需的依赖项(客户端)。这是非常本地化的,因为它还没有建立。每次运行命令时我都可以强制执行此结果。没有运行构建生命周期的任何阶段 - 没有编译,什么都没有。 Maven 尝试首先执行站点生命周期。仅当我运行 mvn clean deploy
时,构建才会成功然后另一个 mvn clean package site
,因为然后从连接中读取 Artifact 。但站点生命周期再次在构建生命周期之前执行。 注意 仅通过 mvn clean package
构建项目工作正常,没有任何问题。所有模块均按正确的顺序构建。但是当我添加 site
生命周期失败。
我读了maven documentation about lifecycle但我不明白为什么 site
在build
之前运行。在关于 SO 的一些问题中,我读到应在同一阶段执行的插件是按照 pom.xml
中列出的顺序执行的。 。所以我也检查了,但是 <build>
标签定义在 <reporting>
之前标签。
那么,为什么 Maven 在我的一个项目中的构建生命周期之前执行站点生命周期,以及如何强制 Maven 以正确的顺序执行生命周期:clean -> build -> site
?
P.S:我在 Windows 7 的命令行上运行所有 Maven 命令。
编辑
我了解生命周期和阶段,这意味着我知道 package
之间有什么区别, install
, deploy
是 - 这不是问题的一部分!
对于那些不相信执行顺序的人:这是我运行 mvn clean install site
时的输出,显示 site-lifecycle 在 build-lifecycle 之前执行。我运行mvn clean package site
也没关系或mvn clean install site
。再次运行单mvn clean package
(或安装)工作正常,但当我也想生成网站时就不行了。然后首先执行站点。
最佳答案
经过几个小时的研究,我找到了解决问题的方法:
两个项目在报告期间都使用 maven-javadoc-plugin
<reporting>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven.javadoc.version}</version>
<!-- DocLint je nach Profil ausschalten (siehe oben) -->
<configuration>
<additionalparam>${javadoc.opts}</additionalparam>
</configuration>
</plugin>
...
</reporting>
在失败项目的 EJB 中,我们还在构建生命周期的 generate-sources
阶段使用 build-helper-maven-plugin
。
<build>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
....
</plugin>
...
</build>
这两个插件似乎在 generate-sources
阶段发生了冲突。
更改 maven-javadoc-plugin
以使用以下 ReportSet
后,站点生成工作正常
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven.javadoc.version}</version>
<!-- Disable DocLint correspondening to java version -->
<configuration>
<additionalparam>${javadoc.opts}</additionalparam>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>javadoc-no-fork</report>
<report>test-javadoc-no-fork</report>
</reports>
</reportSet>
</reportSets>
</plugin>
我仍然不太明白为什么它会发生冲突,但至少我的项目正在运行。
关于java - 如何强制 Maven 在站点生命周期之前运行构建生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40726898/
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我正在尝试将 JSON 发送到我的服务器并作为结果检索 JSON。例如发送用户名和密码并取回 token 和其他内容。 这就是我正在为发送的 HTTP 请求所做的。我现在如何检索同一请求中的内容?
我有以下 xts 矩阵: > options(digits.secs = 6) > set.seed(1234) > xts(1:10, as.POSIXlt(1366039619, tz="EST"
我目前正在开发一个应用程序,当用户到达某个位置时,它会提醒用户。我希望这个应用程序也在后台运行并搜索解决方案。 在 AppStore 中,我发现了一款名为“Sleep Cycle”的应用程序,它可
我想创建一个基于 farbtastic color picker 的颜色选择器。我想要实现的是添加我想要链接到色轮的 RGB slider 。这是我到目前为止所拥有的。 app.controller(
RFC 5545 允许 RDATE 属性具有 PERIOD 数据类型。该数据类型的语义是什么?据我所知,这是未指定的。它会改变事件的持续时间吗?如果时区更改且没有持续时间怎么办? 最佳答案 尽管我
在 CodinGame学习平台,C# 教程中用作示例的问题之一是: The aim of this exercise is to check the presence of a number in a
我听说网上有一本英特尔书,它描述了特定汇编指令所需的 CPU 周期,但我找不到(经过努力)。谁能告诉我如何找到CPU周期? 这是一个例子,在下面的代码中,mov/lock 是 1 个 CPU 周期,x
据我所知,Java GC有次要GC(低成本)和主要GC周期(高成本)。如果对象在本地范围内,则会在 Minor GC 中清理它。如果对象的引用存储在代码中的其他位置,则它会在主 GC 中被清除。 例如
到目前为止,我有一个很好的自旋锁,可以用作 intendend: std::atomic_flag barrier = ATOMIC_FLAG_INIT; inline void lo
晚上好,我将 cycle2 与 prev 和 next 函数一起使用,但我无法将 prev 和 next 函数置于图像下方的中心。我环顾四周,我知道这会很愚蠢,但我就是看不到它。非常令人沮丧。谢谢加里
出于教育目的,我想知道在优化(在不同级别)和编译之后执行函数需要多少 CPU 周期。有没有办法分析代码或可执行文件以获得可重现的答案?我在 64 位 Windows 7 Pro 上使用 Eclipse
我想彻底测量和调整我的 C/C++ 代码,以便在 x86_64 系统上更好地使用缓存。我知道如何使用计数器(我的 Windows 机器上的 QueryPerformanceCounter)来测量时间,
我尝试将一些数据分组到每四周一次的存储桶中,并使用 pd.Grouper(key='created_at', freq='4W')。我希望这些组是这样的,如果我有从 2019-08-26 到 2019
我正在做一个关于随机数的大型学校项目,但我找不到 Math.random() 的句点。我安装了 7.0.800.15 版本,并且正在使用 Windows 10 计算机。我试过用一个简单的程序来确定周期
我正在努力解决我们生产环境中垃圾收集利用率高的问题,我想知道设置一个大的堆大小来保证老年代永远不会被填满是否会阻止触发主要的 GC 周期。 为了实现这一点,我想有一个特定的阈值标记会触发主要的 GC
我想测量在 Python 3 中执行加法运算所需的时钟周期数。 我写了一个程序来计算加法运算的平均值: from timeit import timeit def test(n): for i
我正在寻找一种方法来测量线程上的函数调用所花费的 cpu 周期。 示例伪代码: void HostFunction() { var startTick = CurrentThread.Cur
就 CPU 周期而言,malloc() 的成本是多少?(Vista/OS,最新版本的 gcc,最高优化级别,...) 基本上,我正在实现一个复杂的 DAG 结构(类似于链表)由一些 16B(不太常见)
C/C++ 中的类型转换会导致额外的 CPU 周期吗? 我的理解是,至少在某些情况下应该消耗额外的 CPU 周期。就像从浮点类型转换为整数一样,CPU 需要将浮点结构转换为整数。 float a=2.
我是一名优秀的程序员,十分优秀!