Как я могу создать два jar-файла с разными классами, используя pom.xml? - PullRequest
0 голосов
/ 23 мая 2019

Я новичок в 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>

Теперь обратите внимание, что я добавил версию в свой тег сборки.Это заставило меня сменить «метку цели» с «сингла» на «банку».Я также попытался вставить зависимости, такие как весь тег 'configuration' из оригинала, в оба исполнения.Я получаю три файла jar, но ни один из них не содержит зависимости.

* Редактировать * Я знаю, что было бы лучше разделить этот XML-файл на несколько файлов для выполнения этой задачи.однако спецификации проекта требуют, чтобы они выполнялись с использованием одного файла pom.xml.

...