maven build with war and jar将奇怪的文物推送到内部回购

bro*_*chb 7 java maven-2 jar war

我有一个maven项目,我正在构建一个war文件,但我也在使用maven-jar-plugin在同一个项目中构建一个jar.

--DISCLAIMER--我知道这不是'正确'的方法,但是当将它分成一个jar项目和一个单独的war项目与一些第三方插件时,还会出现一些其他问题.

我看到了一些奇怪的行为.以下是我的项目结构.

warproject
-src
--main
---webapp
----WEB-INF
-----web.xml
---java
----com.test.myclass
-----test.java
-pom.xml
Run Code Online (Sandbox Code Playgroud)

当我构建这个项目时,我在目标目录中获得了正确的war和jar文件,但是在我的本地.m2 repo中发生了一些奇怪的事情.安装的war文件正确命名为war-jar-0.0.1-SNAPSHOT.war,但此文件的内容是我的jar文件的内容.如果我做反过来也会发生这种情况.即如果我设置我的项目来构建一个jar并使用maven-war-plugin来构建战争,我的目标目录中的档案是正确的,但我的本地仓库有jar文件,其中包含我的war文件的内容.下面是我正在使用的pom文件.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.test</groupId>
  <artifactId>war-jar</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <jarName>${project.artifactId}-${project.version}-client</jarName>
                </configuration>
                <executions>
                    <execution>
                        <id>make-a-jar</id>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
    </build>

</project>
Run Code Online (Sandbox Code Playgroud)

控制台输出如下,它显示jar正在上传为战争.

Installing /home/me/work/src/war-jar/target/war-jar-0.0.1-SNAPSHOT.jar to /home/me/.m2/repository/com/test/war-jar/0.0.1-SNAPSHOT/war-jar-0.0.1-SNAPSHOT.war
Run Code Online (Sandbox Code Playgroud)

--UPDATE我有这个工作,但我不得不改变我的'make-a-jar'执行的阶段来从包安装.这工作正常,上传了正确的工件,但我仍然感到困惑,为什么这会产生影响.显然,工件是在不同的生命周期阶段生成的,因此在项目的原始安装时不会生成,因此不会上载错误的文件.这似乎是一个"黑客",我想了解为什么这样做.

bro*_*chb 4

我正在回答我自己的问题,因为我没有得到任何帮助我找到解决方案的信息。请参阅我对原始问题的更新以获取解决方案。