Maven`help:effective-pom`仅为单个项目而非所有项目生成

时间:2017-11-12 22:36:59

标签: java maven

我想为多模块构建中的所有子项目生成有效的pom。

help:effective-pom文档here

  

它将迭代当前构建会话中的所有项目,为每个

打印有效的POM

我在this maven project的根目录中运行mvn help:effective-pom,它只生成根目录而不是子项目。

为什么不为所有项目生成有效的pom。注意:我有另一个真实世界的maven项目,其中mvn help:effective-pom正在为每个子模块正确生成带有嵌套<projects>的{​​{1}}标记。我不确定为什么它不适用于this maven project

这是生成的有效pom

<project>

3 个答案:

答案 0 :(得分:4)

EffectivePomMojo是聚合器目标。这意味着它仅针对您运行它的模块调用。但你是对的,它应该转储所有的子项目。在你的情况下它没有这样做的原因是因为这一行:

if ( projects.get( 0 ).equals( project ) && projects.size() > 1 )

在您的情况下,最上面的项目是图表中的最后一个(因为它与任何其他模块没有依赖关系)。如果你将它作为父项添加到project0(并且仅用于该模块),那么它会将你的根pom放在图中的第一个位置,一切都会按预期工作。

我无法想出这种行为的理由。因此,如果你在bugtracker中提出一个问题,那么每个人都会受益:)如果你得到答案,请更新我们。

PS:如果您知道如何调试Maven插件,这些问题很容易解决。为此,您可以使用mvnDebug代替mvn,然后打开插件的源代码并附加到调试会话。

答案 1 :(得分:1)

除了根项目中的parent元素之外,您还需要在每个子模块pom.xml中指定modules元素,例如:

<parent>
    <groupId>org.gradle.test.performance</groupId>
    <artifactId>project</artifactId>
    <version>1.0</version>
</parent>

否则在运行help:effective-pom命令时将无法获取它。

编辑:关于为什么插件不能与聚合一起工作的一些精确性。 聚合(使用modules元素完成)与继承(使用parent元素)不同。但是,插件文档明确提到:

  

有效pom目标用于使得POM可见   从插值,继承和主动的应用   轮廓。

并没有提到聚合插件。我相信它基本上意味着:

  

我将接受你提供的pom,应用插值,继承和活动配置文件但不聚合,并为您提供最终的pom。处理它。

答案 2 :(得分:0)

我最终得到了一个不同的解决方案。我不是要接受单个根INFO: pocketsphinx.c(152): Parsed model-specific feature parameters from /usr/local/share/pocketsphinx/model/en-us/en-us/feat.params Current configuration: [NAME] [DEFLT] [VALUE] -agc none none -agcthresh 2.0 2.000000e+00 -allphone -allphone_ci no no -alpha 0.97 9.700000e-01 -ascale 20.0 2.000000e+01 -aw 1 1 -backtrace no no -beam 1e-48 1.000000e-48 -bestpath yes yes -bestpathlw 9.5 9.500000e+00 -ceplen 13 13 -cmn live batch -cmninit 40,3,-1 41.00,-5.29,-0.12,5.09,2.48,-4.07,-1.37,-1.78,-5.08,-2.05,-6.45,-1.42,1.17 -compallsen no no -debug 0 -dict /usr/local/share/pocketsphinx/model/en-us/cmudict-en-us.dict -dictcase no no -dither no no -doublebw no no -ds 1 1 -fdict -feat 1s_c_d_dd 1s_c_d_dd -featparams -fillprob 1e-8 1.000000e-08 -frate 100 100 -fsg -fsgusealtpron yes yes -fsgusefiller yes yes -fwdflat yes yes -fwdflatbeam 1e-64 1.000000e-64 -fwdflatefwid 4 4 -fwdflatlw 8.5 8.500000e+00 -fwdflatsfwin 25 25 -fwdflatwbeam 7e-29 7.000000e-29 -fwdtree yes yes -hmm /usr/local/share/pocketsphinx/model/en-us/en-us -input_endian little little -jsgf -keyphrase -kws -kws_delay 10 10 -kws_plp 1e-1 1.000000e-01 -kws_threshold 1 1.000000e+00 -latsize 5000 5000 -lda -ldadim 0 0 -lifter 0 22 -lm /usr/local/share/pocketsphinx/model/en-us/en-us.lm.bin -lmctl -lmname -logbase 1.0001 1.000100e+00 -logfn -logspec no no -lowerf 133.33334 1.300000e+02 -lpbeam 1e-40 1.000000e-40 -lponlybeam 7e-29 7.000000e-29 -lw 6.5 6.500000e+00 -maxhmmpf 30000 30000 -maxwpf -1 -1 -mdef -mean -mfclogdir -min_endfr 0 0 -mixw -mixwfloor 0.0000001 1.000000e-07 -mllr -mmap yes yes -ncep 13 13 -nfft 512 512 -nfilt 40 25 -nwpen 1.0 1.000000e+00 -pbeam 1e-48 1.000000e-48 -pip 1.0 1.000000e+00 -pl_beam 1e-10 1.000000e-10 -pl_pbeam 1e-10 1.000000e-10 -pl_pip 1.0 1.000000e+00 -pl_weight 3.0 3.000000e+00 -pl_window 5 5 -rawlogdir -remove_dc no no -remove_noise yes yes -remove_silence yes yes -round_filters yes yes -samprate 16000 1.600000e+04 -seed -1 -1 -sendump -senlogdir -senmgau -silprob 0.005 5.000000e-03 -smoothspec no no -svspec 0-12/13-25/26-38 -tmat -tmatfloor 0.0001 1.000000e-04 -topn 4 4 -topn_beam 0 0 -toprule -transform legacy dct -unit_area yes yes -upperf 6855.4976 6.800000e+03 -uw 1.0 1.000000e+00 -vad_postspeech 50 50 -vad_prespeech 20 20 -vad_startspeech 10 10 -vad_threshold 2.0 2.000000e+00 -var -varfloor 0.0001 1.000000e-04 -varnorm no no -verbose no no -warp_params -warp_type inverse_linear inverse_linear -wbeam 7e-29 7.000000e-29 -wip 0.65 6.500000e-01 -wlen 0.025625 2.562500e-02 INFO: feat.c(715): Initializing feature stream to type: '1s_c_d_dd', ceplen=13, CMN='batch', VARNORM='no', AGC='none' INFO: acmod.c(162): Using subvector specification 0-12/13-25/26-38 INFO: mdef.c(518): Reading model definition: /usr/local/share/pocketsphinx/model/en-us/en-us/mdef INFO: mdef.c(531): Found byte-order mark BMDF, assuming this is a binary mdef file INFO: bin_mdef.c(336): Reading binary model definition: /usr/local/share/pocketsphinx/model/en-us/en-us/mdef INFO: bin_mdef.c(516): 42 CI-phone, 137053 CD-phone, 3 emitstate/phone, 126 CI-sen, 5126 Sen, 29324 Sen-Seq INFO: tmat.c(149): Reading HMM transition probability matrices: /usr/local/share/pocketsphinx/model/en-us/en-us/transition_matrices INFO: acmod.c(113): Attempting to use PTM computation module INFO: ms_gauden.c(127): Reading mixture gaussian parameter: /usr/local/share/pocketsphinx/model/en-us/en-us/means INFO: ms_gauden.c(242): 42 codebook, 3 feature, size: INFO: ms_gauden.c(244): 128x13 INFO: ms_gauden.c(244): 128x13 INFO: ms_gauden.c(244): 128x13 INFO: ms_gauden.c(127): Reading mixture gaussian parameter: /usr/local/share/pocketsphinx/model/en-us/en-us/variances INFO: ms_gauden.c(242): 42 codebook, 3 feature, size: INFO: ms_gauden.c(244): 128x13 INFO: ms_gauden.c(244): 128x13 INFO: ms_gauden.c(244): 128x13 INFO: ms_gauden.c(304): 222 variance values floored INFO: ptm_mgau.c(476): Loading senones from dump file /usr/local/share/pocketsphinx/model/en-us/en-us/sendump INFO: ptm_mgau.c(500): BEGIN FILE FORMAT DESCRIPTION INFO: ptm_mgau.c(563): Rows: 128, Columns: 5126 INFO: ptm_mgau.c(595): Using memory-mapped I/O for senones INFO: ptm_mgau.c(838): Maximum top-N: 4 INFO: phone_loop_search.c(114): State beam -225 Phone exit beam -225 Insertion penalty 0 INFO: dict.c(320): Allocating 138824 * 20 bytes (2711 KiB) for word entries INFO: dict.c(333): Reading main dictionary: /usr/local/share/pocketsphinx/model/en-us/cmudict-en-us.dict INFO: dict.c(213): Dictionary size 134723, allocated 1016 KiB for strings, 1679 KiB for phones INFO: dict.c(336): 134723 words read INFO: dict.c(358): Reading filler dictionary: /usr/local/share/pocketsphinx/model/en-us/en-us/noisedict INFO: dict.c(213): Dictionary size 134728, allocated 0 KiB for strings, 0 KiB for phones INFO: dict.c(361): 5 words read INFO: dict2pid.c(396): Building PID tables for dictionary INFO: dict2pid.c(406): Allocating 42^3 * 2 bytes (144 KiB) for word-initial triphones INFO: dict2pid.c(132): Allocated 21336 bytes (20 KiB) for word-final triphones INFO: dict2pid.c(196): Allocated 21336 bytes (20 KiB) for single-phone word triphones INFO: ngram_model_trie.c(354): Trying to read LM in trie binary format callo 作为输入,而是需要解析pom.xml的集合。我现在还嵌入pom.xml并通过maven-model-builder

调用DefaultModelBuilder

例如:

DefaultModelBuildingRequest

感兴趣的人的代码here