如何使用pom.xml创建两个具有不同类的jar文件?

时间:2019-05-23 13:25:19

标签: maven jar pom.xml

我是Maven的新手,并使用POM.XML创建jar文件。

我现在所拥有的是生成了三个jar文件,所有文件都不依赖它们。例如,我的依赖项之一是Selenium,我用它来打开Chrome浏览器。

我需要的是两个jar文件,每个都有其依赖项。

我尝试用依赖关系制作一个jar文件,该文件有效。这是该代码...

<modelVersion>4.0.0</modelVersion>
    <groupId>com.costanzo.mavendemo</groupId>
    <artifactId>java-archive</artifactId>
    <version>1.0-SNAPSHOT</version>
   <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
            <appendAssemblyId>false</appendAssemblyId>
          <archive>
            <manifest>
              <mainClass>com.costanzo.mavendemo.MavenDemo1</mainClass>
            </manifest>
          </archive>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
            <execution>
              <id>make-assembly</id> 
              <phase>package</phase>
              <goals>
                <goal>single</goal>
              </goals>
            </execution>
          </executions>
      </plugin>
    </plugins>
  </build>

但是当我尝试添加另一个执行以生成另一个jar文件时,它会创建三个,而这些都没有我的依赖性。

 <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.1.2</version>
        <configuration>
            <appendAssemblyId>false</appendAssemblyId>
          <archive>
            <manifest>
              <mainClass>com.costanzo.mavendemo.MavenDemo1</mainClass>
            </manifest>
          </archive>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
            <execution>
              <id>make-assembly</id>
              <phase>package</phase>
              <goals>
                <goal>jar</goal>
              </goals>
              <configuration>
                <classifier>client</classifier>
                <includes>
                  <include>**/*</include>
                </includes>
              </configuration>
            </execution>
            <execution>
              <id>make-assembly2</id>
              <phase>package</phase>
              <goals>
                <goal>jar</goal>
              </goals>
              <configuration>
                <classifier>client2</classifier>
                <includes>
                  <include>**/*</include>
                </includes>
              </configuration>
            </execution>
          </executions>
      </plugin>
    </plugins>
  </build>

现在,请注意,我已经在build标签内添加了一个版本。这迫使我将“目标标签”从“单个”更改为“罐子”。我还尝试将诸如原始文件的整个“ configuration”标记之类的依赖项粘贴到两个执行中。我正在获取三个jar文件,但其中没有一个包含依赖性。

*编辑* 我知道将.xml拆分为多个文件以完成此任务会更好,但是项目的规范要求必须使用一个pom.xml文件来完成它们。

0 个答案:

没有答案