Как исключить набор пакетов из maven build jar? - PullRequest
12 голосов
/ 18 марта 2012

Это все, что мне нужно.Дополнительные сведения: у меня есть папка src / bootstrap / java и обычная папка src / main / java.Каждому нужно идти в отдельную банку по понятным причинам.Я смог сгенерировать загрузочную флягу, используя this :

  <plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.1</version>
    <executions>
      <execution>
        <id>only-bootstrap</id>
        <goals><goal>jar</goal></goals>
        <phase>package</phase>
        <configuration>
          <classifier>bootstrap</classifier>
          <includes>
            <include>sun/**/*</include>
          </includes>
        </configuration>
      </execution>
    </executions>
  </plugin>

Но обычный фляга все еще включает классы начальной загрузки.Я собираю классы начальной загрузки с этим ответом .

Любой источник света для создания myproject.jar БЕЗ классов начальной загрузки?

Ответы [ 3 ]

18 голосов
/ 18 марта 2012

Вы должны использовать "default-jar" для ID:

  <plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.1</version>
    <executions>
      <execution>
        <id>only-bootstrap</id>
        <goals><goal>jar</goal></goals>
        <phase>package</phase>
        <configuration>
          <classifier>bootstrap</classifier>
          <includes>
            <include>sun/**/*</include>
          </includes>
        </configuration>
      </execution>
      <execution>
        <id>default-jar</id>
        <phase>package</phase>
        <goals>
          <goal>jar</goal>
        </goals>
        <configuration>
          <excludes>
            <exclude>sun/**/*</exclude>
          </excludes>
        </configuration>
      </execution>
    </executions>
  </plugin>
2 голосов
/ 18 марта 2012

Я думаю, вы можете взглянуть на это, прежде чем принять решение о создании двух банок из одного pom.

Лучшая практика Maven для создания нескольких банок с различными / отфильтрованными классами?

Если вы все-таки решили получить две банки, вы можете сделать это, используя это.Вы должны указать правильные исключения.

<build>
    <plugins>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <id>only-bootstrap</id>
            <goals><goal>jar</goal></goals>
            <phase>package</phase>
            <configuration>
              <classifier>only-library</classifier>
              <includes>
                <include>**/*</include>
              </includes>
              <excludes>
                <exclude>**/main*</exclude>
              </excludes>
            </configuration>
          </execution>
          <execution>
            <id>only-main</id>
            <goals><goal>jar</goal></goals>
            <phase>package</phase>
            <configuration>
              <classifier>everything</classifier>
              <includes>
                <include>**/*</include>
              </includes>
              <excludes>
                <exclude>**/bootstrap*</exclude>
              </excludes>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
0 голосов
/ 18 марта 2012

Может быть, использовать ProGuard ? Это то, что я использую, чтобы удалить неиспользуемый код. кажется , что вы можете добавить его как плагин Maven.

...