Maven 2 程序集创建问题

Maven 2 程序集创建问题,maven-2,Maven 2,在我的项目中,我创建了许多程序集(4-5个),并将它们输出到目标。其中1/2的程序集没有使用它们的最终名称(或程序集id),而是按照artifactID version.jar的格式。这非常混乱 为什么会这样 从my pom.xml中提取-- 4.0.0 苹果公司 专家 马文乌XX 0.0.1-快照 org.apache.maven.plugins maven编译器插件 1.5 1.5 org.apache.maven.plugins maven surefire插件 2.4.2 真的 mav

在我的项目中,我创建了许多程序集(4-5个),并将它们输出到目标。其中1/2的程序集没有使用它们的最终名称(或程序集id),而是按照artifactID version.jar的格式。这非常混乱 为什么会这样

从my pom.xml中提取--


4.0.0
苹果公司
专家
马文乌XX
0.0.1-快照
org.apache.maven.plugins
maven编译器插件
1.5
1.5
org.apache.maven.plugins
maven surefire插件
2.4.2
真的
maven汇编插件
2.2-β-4
clientjar
编译
单一的
XX_客户
假的
${basedir}/src/main/resources/assemblies/clientjar.xml
11***
编译
单一的
11服务器
假的
${basedir}/src/main/resources/assemblies/11server.xml
程序集目标
隐藏物
编译
单一的
隐藏物
假的
${basedir}/src/main/resources/assemblies/cache.xml
程序集目标

当您运行程序集时,是否会看到类似于Maven向控制台输出的内容:

[INFO] [assembly:single {execution: 11***}]
[INFO] Reading assembly descriptor: C:\test\test-parent2/src/main/resources/assemblies/11server.xml
[INFO] Building jar: C:\test\test-parent2\assemblies-target\11server.jar
[WARNING] Configuration options: 'appendAssemblyId' is set to false, and 'classifier' is missing.
Instead of attaching the assembly file: C:\test\test-parent2\assemblies-target\11server.jar, it will become the file for
 main project artifact.
NOTE: If multiple descriptors or descriptor-formats are provided for this project, the value of this file will be non-de
terministic!
这是因为所有程序集都指定了
。它们都遵循与
过程资源
编译
目标类似的模式。在您的情况下,您可能希望省略
jar
目标。

将的注释拉到问题级别以提供可见性

而前面的答案指出:

如果我理解正确的话,这似乎是一个有点侵入性的解决方法,可以解决汇编插件中的一个bug。相反,请尝试在配置中设置false。见:

对于未连接到存储库发行版的工件,这是一个很好的解决方案,对我来说效果很好

...
<appendAssemblyId>false</appendAssemblyId>
<attach>false</attach>
...
。。。
假的
假的
...

Its不是随机的。不遵循特定的程序集。每个jar的预期输出都是提供了最终名称的jar。但我得到的是-Project name-version.jarHi,在运行程序集时,我得到的警告与您给出的一样。那么,你的意思是说我应该使用goal=compile来编译程序集(这会产生jar)并启用maven编译目标?不,我的意思是让项目的打包“pom”并配置插件,以便在jar的生命周期中正常执行的目标在pom的生命周期中执行,通过以上配置,资源和编译插件将在默认生命周期内执行,因此您仍然运行
mvn install
。这绕过了汇编插件中的错误。。我将包装更改为“pom”。添加了您提供的两个插件,没有对程序集进行任何配置更改。在运行mvn install时,对于第二个程序集,它正在给出-由以下原因引起:org.apache.maven.project.DuplicateArtifactAttachmentException:检测到重复的工件附件。您的问题中没有此类配置,能否更新问题以将其包括在内?由以下原因引起:org.apache.maven.project.DuplicateArtifactAttachmentException:检测到重复的工件附件。(项目:com.xxx:maven_XX:pom:0.0.1-SNAPSHOT;非法附件:com.xxx:maven_XX:jar:0.0.1-SNAPSHOT)适用于“单个程序集”项目。
<plugin>
  <artifactId>maven-resources-plugin</artifactId>
  <executions>              
    <execution>
      <id>process-resources</id>
      <phase>process-resources</phase>
      <goals>
        <goal>resources</goal>
      </goals>
    </execution>
  </executions>
</plugin>
<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <executions>              
    <execution>
      <id>compile</id>
      <phase>compile</phase>
      <goals>
        <goal>compile</goal>
      </goals>
    </execution>
  </executions>
</plugin>
...
<appendAssemblyId>false</appendAssemblyId>
<attach>false</attach>
...